Androidデザインモデルシリーズの工場方法モデル


工場の方法のモード、よく設計のモードの初心者の入門のモードで、確かに、ある人はこれが最も典型的で最も啓発の効果のモードを備えると称します。
Androidには多すぎる工場類が使われています。その中に工場の方法があります。もちろん工場の方法モデルを使うのではなく、工具管理類だけの工場も多いです。
今日はThreadFactoryを例に挙げて、簡単な工場モデルと工場方法モデルを説明します。
工場の方法のモード、Factory Method、簡単な方式、簡単な応用。
1.意図
オブジェクトを作成するためのインターフェースを定義し、どのクラスを実装するかをサブクラスに決めさせます。工場モードは、クラスの実装をそのサブクラスに遅延させます。
人気のある言葉:架空の作成器がサブクラスを作成するのを遅くしました。
2.構造図とコード
まず標準的な工場方法の構造図を見ます。

まず抽象的な製品類、抽象的な工場類、そしてクライアントの具体的な工場で相応の具体的な製品を生産します。だから、ある意味、工場の方法モデルは私達が直接にnewで対象を作る方式を変えました。
ThreadFactoryを例として:

この図は元々の構造図とは微妙に違っています。パラメータ化された工場であり、業務上の意味も少し違っていますが、思想は同じです。
具体的なコードを見てみます。

//     
public interface Runnable { 
public abstract void run(); 
} 
//     
public interface ThreadFactory { 
Thread newThread(Runnable r); 
} 
以下は具体的な実現です。
例えばAsyncTask類の工場の具体的な実現は以下の通りです。

//      
private static final ThreadFactory sThreadFactory = new ThreadFactory() { 
private final AtomicInteger mCount = new AtomicInteger(1); 

public Thread newThread(Runnable r) { 
return new Thread(r, "AsyncTask #" + mCount.getAndIncrement()); 
} 
}; 
//         ? 
//    Runnable r,                   
//  ,             ,         ,       
ここを見て、私達は一方ではその生産の便利さとセクシーさを嘆いています。一方ではある種類の製品を創建していないために、工場を作るのが煩わしいと感じています。簡単な工場を紹介します。その構造図は以下の通りです。

簡単な工場で抽象的な工場をなくして、専門的にある種類の製品を生産すればいいです。いくつかの特定かつ非責任の分野では非常に実用的で便利です。
androidのConnection類では、このクラスに使用されています。

その中のConnectionという抽象的な類は、抽象的な製品類としても、具体的な工場類としても機能しています。
このような状況のために、すぐにサブクラスを生産する必要があります。getConnection方法は常に静的です。だから、簡単な工場といい、静的な工場方法ともいいます。
コードを見てみます。

abstract class Connection{ 
static Connection getConnection( 
Context context, HttpHost host, HttpHost proxy, 
RequestFeeder requestFeeder) { 
if (host.getSchemeName().equals("http")) { 
return new HttpConnection(context, host, requestFeeder); 
} 
// Otherwise, default to https 
return new HttpsConnection(context, host, proxy, requestFeeder); 
} 
}
これは簡単な工場です。簡単なパラメータの化学工場です。本当に簡単です。
3.効果
1.作成モード
2.パラメータ化学工場の方法モデルは相応の対象を得る。
3.サブクラスにホックを提供する;
4.平行なクラスレベルを接続します。
以上は小编が绍介したAndroidデザインモデルシリーズの工场方法モデルです。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。