« تفاوت هاي جاوا و ++C | صفحه اصلی | Inheritance »
PIE
May 27, 2007 11:28 AM
PIE معرف سه ويژگي اصلي Object Oriented است كه جاوا بر آن استوار است: Polymorphism، Inheritance و Encapsulation
Polymorphism يعني استفاده از يك متغير براي ارجاع به Object هايي با type هاي متفاوت. فايده اصلي Polymorphism امكان افزودن class هاي جديد است، بدون اينكه نياز به اصلاح كدهاي قبلي باشد. مثال:
Polymorphism يعني استفاده از يك متغير براي ارجاع به Object هايي با type هاي متفاوت. فايده اصلي Polymorphism امكان افزودن class هاي جديد است، بدون اينكه نياز به اصلاح كدهاي قبلي باشد. مثال:
List listShapes = new ArrayList(20);
Shape s = new Circle(); // دايره
listShapes.add(s);
s = new Square(); // مربع
listShapes.add(s);
s = new HalfCircle(); //نيم دايره
listShapes.add(s);
getTotArea(listShapes); // اين متد مجموع مساحت دايره،مربع و نيم دايره را برميگرداند
public double getTotArea(List listShapes){
Iterator it = listShapes.iterator();
double totalArea = 0.0;
while (it.hasNext()){
Shape s = (Shape) it.next();
totalArea += s.area(); // Polymorphic method call
}
Return totalArea;
}
Shape s = new Circle(); // دايره
listShapes.add(s);
s = new Square(); // مربع
listShapes.add(s);
s = new HalfCircle(); //نيم دايره
listShapes.add(s);
getTotArea(listShapes); // اين متد مجموع مساحت دايره،مربع و نيم دايره را برميگرداند
public double getTotArea(List listShapes){
Iterator it = listShapes.iterator();
double totalArea = 0.0;
while (it.hasNext()){
Shape s = (Shape) it.next();
totalArea += s.area(); // Polymorphic method call
}
Return totalArea;
}
در صورتي كه شكل هندسي ديگري، مثلا مثلث به عنوان subclass اي از Shape تعريف شود، نيازي به تغيير متد getTotArea نيست. بلكه تنها بايد تابع area بطور مناسب در class جديد پياده شود.
دو جزء ديگر PIE يعني Inheritance و Encapsulation در مطالب بعدي ارائه خواهند شد.
دو جزء ديگر PIE يعني Inheritance و Encapsulation در مطالب بعدي ارائه خواهند شد.
نظرخواهی
ارسال شده توسط: ali در ساعت May 27, 2007 01:07 PM
دقيقا همين طور است. آنچه ذكر كرده ايد مزاياي اصلي PIE است كه من از توضيح آن گذشته ام. قطعا بسط اين موضوع از ديدگاه مهندسي نرم افزار مفيد خواهد بود.
ارسال شده توسط: mahyar در ساعت May 28, 2007 01:22 PM