int a, b;
// MyClass sinfi uchun fabrika yaratish.
static public MyClass Factory(int i, int j) {
MyClass t = new MyClass();
t.a = i;
t.b = j;
return t; // ob'ektni qaytarish
}
public void Show() {
Console.WriteLine("а и b: " + a + " " + b);
}
}
class MakeObjects {
static void Main() {
int i, j;
// Fabrika yordamida ob'ektlarni shakllantirish.
for(i=0, j=10; i < 10; i++, j --) {
MyClass ob = MyClass.Factory(i, j); // ob'ekt yaratish
ob.Show();
}
Console.WriteLine() ;
}
}
Dasturning ushbu versiyasida fabrika metodi Factory() quyidagi kod satrida sinf nomi bilan chaqiriladi.
MyClass ob = MyClass.Factory(i, j); // ob'ekt yaratish
Endi bu sinfda fabrikani ishlatishdan oldin MyClass sinfining ob'ektini yaratishga hojat yo'q.
2. Static konstruktorlar.
Konstruktorlarni ham static deb e'lon qilinishi mumkin. static konstruktor, odatda, ushbu sinf ob'ektining alohida nusxasiga emas, balki butun sinfga qo'llaniladigan komponentlarni ishga tushirish uchun ishlatiladi. Shuning uchun, sinf a'zolari ushbu sinfning har qanday ob'ektlarini yaratishdan oldin static konstruktor tomonidan initsalizatsiya qilinadi. Quyida static konstruktorni ishlatishga oddiy misol keltirilgan.
// static konstruktorni qo'llash.
using System;
class Cons {
public static int alpha;
public int beta;
Do'stlaringiz bilan baham: |