Můžeš uvést příklad, kdy framework Android používá vzor návrhu 'Továrna'?
sobes.tech AI
Odpověď od AI
// Příklady použití Factory Method v Androidu
// Vytváření View přes XML rozložení
// Samotný LayoutInflater je implementací Factory Method
LayoutInflater inflater = LayoutInflater.from(context);
View rootView = inflater.inflate(R.layout.my_layout, parent, false);
// Vytváření Intent
// Konstruktor Intent funguje jako Abstraktní továrna pro vytváření objektů ComponentName
Intent serviceIntent = new Intent(context, MyService.class);
// Context - abstraktní továrna pro přístup k systémovým službám
// Získejte LayoutInflater z Contextu
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// Získejte NotificationManager z Contextu
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Příkladem použití může být LayoutInflater. Skrývá detaily tvorby konkrétních objektů View ze souborů XML. Stačí předat zdroj rozložení a získáte hotový objekt View nebo hierarchii View. LayoutInflater funguje jako továrna, vytváří různé typy zobrazení (TextView, ImageView, Button atd.) na základě tagů v XML.
Dalším příkladem je tvorba objektů Intent. Konstruktor Intent lze považovat za součást továrenské metody pro tvorbu abstraktního objektu, který představuje akci, jež má být provedena.
Třída Context také funguje jako abstraktní továrna, poskytující přístup k různým systémovým službám (například LayoutInflater, NotificationManager, PackageManager), které jsou vytvářeny a poskytovány na požádání.
<!-- Příklad XML rozložení zpracovávaného LayoutInflaterem -->
<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="Ahoj, světe!" />
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stiskni mě" />
</LinearLayout>
Tímto způsobem aktivně využívá Android framework vzor "Továrna" na různých úrovních abstrakce, aby odpojil a zjednodušil tvorbu objektů.