Android framework'ining 'Fabrika' dizayn shablonidan foydalanadigan misol keltira olasizmi?
sobes.tech AI
AIdan javob
// Android'da Factory Method istifadəsi nümunələri
// XML layout vasitəsilə View yaradılması
// LayoutInflater özü Factory Method-un tətbiqidir
LayoutInflater inflater = LayoutInflater.from(context);
View rootView = inflater.inflate(R.layout.my_layout, parent, false);
// Intent yaradılması
// Intent konstruktoru, yaradılacaq obyekt üçün Abstract Factory kimi işləyir
Intent serviceIntent = new Intent(context, MyService.class);
// Context - sistem xidmətlərinə çıxış üçün abstrakt fabrika
// Context-dən LayoutInflater alın
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// Context-dən NotificationManager alın
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
İstifadə nümunəsi kimi LayoutInflater göstərilə bilər. Bu, XML fayllarından xüsusi View obyektlərinin yaradılma detallarını gizlədir. Sadəcə layout resursunu ötürürük və hazır View və ya View hierarxiyası alırıq. LayoutInflater müxtəlif tipli görünüşləri (TextView, ImageView, Button və s.) XML-dəki etiketlərə əsasən yaradan fabrikan kimi fəaliyyət göstərir.
Başqa bir nümunə Intent obyektlərinin yaradılmasıdır. Intent konstruktoru, yerinə yetiriləcək əməliyyatı təmsil edən abstrakt obyekt yaratmaq üçün Fabrika metodunun bir hissəsi kimi qəbul edilə bilər.
Context sinfi də abstrakt fabrika kimi fəaliyyət göstərir və müxtəlif sistem xidmətlərinə çıxış təmin edir (məsələn, LayoutInflater, NotificationManager, PackageManager), bunlar tələb əsasında yaradılır və təmin edilir.
<!-- LayoutInflater tərəfindən işlənən XML layout nümunəsi -->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Salam, dünya!" />
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mənə toxun" />
</LinearLayout>
Beləliklə, Android framework müxtəlif abstraksiya səviyyələrində "Fabrika" nümunəsini aktiv şəkildə istifadə edir, obyektlərin yaradılmasını ayırır və sadələşdirir.