学习一下:
转载自:http://blog.csdn.net/chmask/article/details/2631485
1.工厂方法模式(Factory Method)
将程序中创建对象的操作,单独拿出来处理,创建一个产品的工厂接口,
把实际的工作转移到具体的子类(这个子类是工厂的子类)。
大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。
public class TestFactoryMethod {
publicstatic void main(String[] args) {
AnimalFactoryaf = new DogFactory();
Animal1a = af.getAnimal();
}
}
abstract class Animal1{}
class Dog1 extends Animal1{}
class Cat1 extends Animal1{}
abstract class AnimalFactory{//抽象工厂
publicabstract Animal1 getAnimal();//抽象工厂方法
}
class DogFactory extends AnimalFactory{
publicAnimal1 getAnimal(){
System.out.println("Dog");returnnew Dog1();
}
}
class CatFactory extends AnimalFactory{
publicAnimal1 getAnimal(){
System.out.println("Cat");returnnew Cat1();
}
}
工厂方法模式:
是对一类事物的工厂,不是对多类的事物的。
1.定义一个抽象的工厂:
定义了一个抽象方法:作用生成一个对象实例
2.对这一类事物中具体的对象,
分别定义一个工厂类(extends抽象的工厂),
实现抽象的生成对象方法,返回各自的要生产对象实例。
如果这一类事物具体的对象非常多,一个子工厂对应一个对象,会有很多的子工厂。