Java--デザインモデルのファクトリモデル
ファクトリメソッドモードでは、オブジェクトを作成するためのインタフェースを定義し、サブクラスにどのクラスをインスタンス化するかを決定します.ファクトリメソッドは、クラスのインスタンス化をサブクラスに遅延させます.
単純ファクトリvsファクトリモード:単純ファクトリモードの最大の利点は、ファクトリクラスに必要な論理判断が含まれていることであり、クライアントの選択条件に基づいて関連するクラスを動的にインスタンス化し、クライアントにとって具体的な製品への依存を除去することである.
雷鋒を学ぶ小さな例を通じて、工場の方法モデルをどのように実現するかを見てみましょう.
1、雷鋒基類
単純ファクトリvsファクトリモード:単純ファクトリモードの最大の利点は、ファクトリクラスに必要な論理判断が含まれていることであり、クライアントの選択条件に基づいて関連するクラスを動的にインスタンス化し、クライアントにとって具体的な製品への依存を除去することである.
雷鋒を学ぶ小さな例を通じて、工場の方法モデルをどのように実現するかを見てみましょう.
1、雷鋒基類
public class LeiFeng {
public void sweep(){
System.out.println(" ");
}
public void wash(){
System.out.println(" ");
}
public void buyRice(){
System.out.println(" ");
}
}
、ボランティアが雷鋒を継承public class Volunteer extends LeiFeng{
}
3、大学生が雷鋒を継ぐpublic class UnderGraduate extends LeiFeng{
}
4、雷鋒工場public interface IFactory {
LeiFeng createLeiFeng();
}
5、雷鋒を学ぶ大学生工場public class UnderGraduateFactory implements IFactory{
@Override
public LeiFeng createLeiFeng() {
return new UnderGraduate();
}
}
6、雷鋒を学ぶボランティア工場public class VolunteerFactory implements IFactory{
@Override
public LeiFeng createLeiFeng() {
return new Volunteer();
}
}
、テストpublic class Test {
public static void main(String[] args) {
// UnderGraduateFactory
IFactory factory = new UnderGraduateFactory();
LeiFeng student = factory.createLeiFeng();
student.buyRice();
student.sweep();
student.wash();
}
}