Java--デザインモデルのファクトリモデル


ファクトリメソッドモードでは、オブジェクトを作成するためのインタフェースを定義し、サブクラスにどのクラスをインスタンス化するかを決定します.ファクトリメソッドは、クラスのインスタンス化をサブクラスに遅延させます.
単純ファクトリ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();
	}
}