设计模式之工厂模式
2017-04-05 17:45
183 查看
工厂方法模式:工厂父类(接口)负责定义产品对象的公共接口,而子类工厂则负责创建具体的产品对象。
目的:是为了把产品的实例化操作延迟到子类工厂中完成,通过工厂子类来决定究竟应该实例化哪一个产品具体对象。
工厂方法模式包含四个部分:
1.抽象产品:产品对象同一的基类,或者是同一的接口。
2.具体的产品:各个不同的实例对象类
3.抽象工厂:所有的子类工厂类的基类,或是同一的接口
4.具体的工厂子类:负责每个不同的产品对象的实际创建
上代码:
动物接口:
狗类
猫类
然后是工厂:
动物工厂
狗工厂
猫工厂
创建完毕,然后调用:
具体的实现类,与具体的工厂类是一一对应的,这样的话,新添加动物的具体的类,就不需要修改动物工厂,只需要再添加一个具体工厂就行!
OK,Done!
目的:是为了把产品的实例化操作延迟到子类工厂中完成,通过工厂子类来决定究竟应该实例化哪一个产品具体对象。
工厂方法模式包含四个部分:
1.抽象产品:产品对象同一的基类,或者是同一的接口。
2.具体的产品:各个不同的实例对象类
3.抽象工厂:所有的子类工厂类的基类,或是同一的接口
4.具体的工厂子类:负责每个不同的产品对象的实际创建
上代码:
动物接口:
public interface Animal { public void speak(); }
狗类
public class Dog implements Animal{ @Override public void speak() { System.out.println("wang~"); } }
猫类
public class Cat implements Animal{ @Override public void speak() { System.out.println("miao~"); } }
然后是工厂:
动物工厂
public interface AnimalFactory { public Animal getAnimal(); }
狗工厂
public class DogFactory implements AnimalFactory { @Override public Animal getAnimal() { return new Dog(); } }
猫工厂
public class CatFactory implements AnimalFactory { @Override public Animal getAnimal() { return new Cat(); } }
创建完毕,然后调用:
public class testMain3 { public static void main(String[] args) { AnimalFactory animalFactory = new CatFactory(); Animal animal = animalFactory.getAnimal(); animal.speak(); } }
具体的实现类,与具体的工厂类是一一对应的,这样的话,新添加动物的具体的类,就不需要修改动物工厂,只需要再添加一个具体工厂就行!
OK,Done!
相关文章推荐
- 设计模式:工厂
- 简单工厂设计模式-设计模式(1)
- 设计模式之Factory工厂模式
- 设计模式之工厂方法
- 转:C#设计模式之简单工厂篇
- .NET中的设计模式一:工厂模式
- C#设计模式之简单工厂篇
- C#设计模式之简单工厂篇
- .NET实用设计模式:工厂模式(Factory)
- 抽象工厂设计模式(C#)
- .NET中的设计模式一:工厂模式 (转)
- 设计模式[2]-旧话重提之工厂模式
- 设计模式之(2)简单工厂模式
- 设计模式之 工厂方法(Factory)------对象创建型模式
- .NET中的设计模式一:工厂模式 选择自 lane_cn 的 Blog
- C#设计模式学习笔记---简单工厂模式
- Java设计模式:Factory(工厂模式)
- .NET中的设计模式一:工厂模式
- 设计模式[2]-旧话重提之工厂模式
- Java设计模式之工厂模式篇