int i, j;
// Sinfda fabrikani ishlatib, ob'ektlarni shakllantirish.
for(i=0, j=10; i < 10; i++, j--) {
MyClass anotherOb = ob.Factory(i, j); // ob`ekt yaratish
anotherOb.Show();
}
Console.WriteLine();
}
}
Bu kodning bajarilishi natijasi quyidagicha bo`ladi.
a и b: 0 10
a и b: 1 9
a и b: 2 8
a и b: 3 7
a и b: 4 6
a и b: 5 5
a и b: 6 4
a и b: 7 3
a и b: 8 2
a и b: 9 1
Keling, ushbu misolni batafsil ko'rib chiqaylik. Bu misolda, MyClass sinfining konstruktori belgilanmagan, shuning uchun jimlikdagi konstruktor chaqiriladi. Bu shuni anglatadiki, a va b o'zgaruvchilarining qiymatlari konstruktor yordamida o`rnatilmaydi. Lekin sinf fabrikasi Factory()da ob'ektlar yaratish mumkin va unda a va b o'zgaruvchilar qiymatlari belgilangan. Bundan tashqari, a va b o'zgaruvchilar yopiq bo`lganligi uchun ularning qiymatlari faqat sinf fabrikasining Factory() metodi yordamida berilishi mumkin. Main() metodi MyClass sinf ob'ektining nusxasini oladi va uning fabrika metodi yordamida uning o'nta boshqa ob'ektni yaratish uchun for operatoridan foydalanadi. Quyida ushbu ob'ektlar yaratilgan kod satri mavjud.
MyClass anotherOb = ob.Factory(i, j); // ob`ekt yaratish
Takrorlanish jarayonining har bir qadamida sinf fabrikasi tomonidan anotherOb ob'ektiga havola o'zgaruvchisi yaratiladi va u ob'ektga havola beradi. Iteratsiyaning har bir bosqichi tugagandan so'ng, anotherOb o'zgaruvchisi o`z harakat doirasidan chiqadi va u murojaat qilgan ob'ekt qayta ishlanadi.
Do'stlaringiz bilan baham: |