シンプルファクトリモード(SimpleFactory)----メモの作成
2352 ワード
シンプルファクトリモード(SimpleFactory)----メモの作成
一、役柄に関わる:
a) ファクトリクラス(Factory):クライアントで直接呼び出し、javaによって実装されるプロダクトオブジェクトを作成します.
b) 抽象製品(Product):javaインタフェースまたはJava抽象クラス実装.具体的な製品親orインタフェース.
c) 具体的な製品(Concrete Product):工場クラスが作成した具体的な製品
二、物語の説明
1、FACTORY-MMを追うには食事をごちそうする必要があります.マクドナルドの手羽先とケンタッキーの手羽先はMMが好きなものです.味は違いますが、MMをマクドナルドやケンタッキーに連れて行っても、従業員に「手羽先を4つください」と言ってください.マクドナルドとケンタッキーは手羽先生産のファクトリー
工場モデル:顧客クラスと工場クラスが分かれています.消費者はいつでも何かの製品が必要で、工場に頼むだけでいい.消費者は修正する必要がなく、新製品を受け入れることができる.欠点は製品が修正されると、工場類も相応の修正をしなければならないことです.たとえば、クライアントにどのように作成するか、どのように提供するかなどです.
具体的な製品(AbstractProject)
具体的な製品(ProjectA)
具体的な製品(ProjectB)
シンプルファクトリ(SimpleFactory)
一、役柄に関わる:
a) ファクトリクラス(Factory):クライアントで直接呼び出し、javaによって実装されるプロダクトオブジェクトを作成します.
b) 抽象製品(Product):javaインタフェースまたはJava抽象クラス実装.具体的な製品親orインタフェース.
c) 具体的な製品(Concrete Product):工場クラスが作成した具体的な製品
二、物語の説明
1、FACTORY-MMを追うには食事をごちそうする必要があります.マクドナルドの手羽先とケンタッキーの手羽先はMMが好きなものです.味は違いますが、MMをマクドナルドやケンタッキーに連れて行っても、従業員に「手羽先を4つください」と言ってください.マクドナルドとケンタッキーは手羽先生産のファクトリー
工場モデル:顧客クラスと工場クラスが分かれています.消費者はいつでも何かの製品が必要で、工場に頼むだけでいい.消費者は修正する必要がなく、新製品を受け入れることができる.欠点は製品が修正されると、工場類も相応の修正をしなければならないことです.たとえば、クライアントにどのように作成するか、どのように提供するかなどです.
具体的な製品(AbstractProject)
public abstract class AbstractProject {
public abstract void printProject();
}
具体的な製品(ProjectA)
public class ProjectA extends AbstractProject {
@Override
public void printProject() {
System.out.println("new ProjectA");
}
}
具体的な製品(ProjectB)
public class ProjectB extends AbstractProject {
@Override
public void printProject() {
System.out.println("new projectB");
}
}
シンプルファクトリ(SimpleFactory)
public class SimpleFactory {
//------------- ----------------------//
public AbstractProject create(String type){
if(type.equals("projectA")){
return new ProjectA();
}else if(type.equals("projectB")){
return new ProjectB();
}
return null;
}
//------------- - -------------------//
public AbstractProject createProjectA(){ // ,
return new ProjectA();
}
public AbstractProject createProjectB(){
return new ProjectB();
}
public static void main(String[] args) {
SimpleFactory factory = new SimpleFactory();
factory.create("projectA").printProject();
factory.create("projectB").printProject();
/*------- - -------------*/
factory.createProjectA().printProject();
factory.createProjectB().printProject();
}
}
/*new ProjectA
new projectB
new ProjectA
new projectB*/