java设计模式——工厂模式一
2017-04-22 15:22
274 查看
java工厂方法模式
工厂方法模式所包含的成员:(1)抽象产品(product):抽象类或者接口,用于定义具体产品必须实现的方法
(2)具体产品(concreteproduct):如果product是一个抽象类,那么具体产品是product的子类;如果product是一个接口,那么具体产品是实现该接口的类。
注:一般情况下,一个抽象产品是一个抽象类,而具体产品是派生出的众多继承该抽象产品类的不同子类
(3)构造者(creator):一个接口或抽象类。构造者负责定义一个被称为工厂方法的抽象方法(该方法返回抽象产品的一个对象引用——这一点也体现了构造者和抽象产品之间的关系:构造者依赖于抽象产品)
(4)具体构造者(concretecreator):如果构造者是抽象类,具体构造者类就是构造者类的众多不同的子类;如果构造者是接口,具体构造者就是众多实现该接口的不同子类。具体构造者重写工厂方法,使该方法返回具体产品的实例。
工厂方法模式的示例代码:
public abstract class pencore { //抽象产品类,给出要实现的方法 String color; public abstract void writeword(String color); } public class redpencore extends pencore{ //具体产品类,重写抽象产品类中的方法,实现子类具体的功能以满足客户的不同需求 redpencore() { color="红色"; } public void writeword(String neirong) { System.out.println("写出"+color+"的字:"+neirong); } } public class blackpencore extends pencore{ public blackpencore() { color="黑色"; } public void writeword(String neirong) { System.out.println("写出"+color+"的字:"+neirong); } } public abstract class pencorecreator { //构造者类 public abstract pencore getpencore(); //抽象方法,返回抽象产品的对象引用(可见具体产品与具体创造者类是一一对应的) //一个具体创造者对应能生产一种具体产品(如红笔芯制造者redcorecreator能对应生产(返回对象引用)具体红笔芯产品redpencore) } public class redcorecreator extends pencorecreator{ //具体构造者类 public pencore getpencore() { return new redpencore(); // 一个具体创造者对应能生产一种具体产品(如红笔芯制造者redcorecreator能对应生产(返回对象引用)具体红笔芯产品redpencore) } } public class blackcorecreator extends pencorecreator{ public pencore getpencore() //函数头的返回值类型为抽象产品类的对象(pencore),但是实际返回的确是具体产品blackpencore //因为可以将基类对象赋值给子类对象 { return new blackpencore(); //返回具体产品类的对象引用 } } public class ballpen { //圆珠笔类 pencore core; public void userpencore(pencore core) //通过该方法选择使用哪一个产品(参数列表中传递进来一个抽象产品的对象引用) { this.core=core; } public void write(String s) //通过该方法调用具体产品的writeword方法 { core.writeword(s); } } public class test { public static void main(String[] args) { pencore core; pencorecreator creator; ballpen b1=new ballpen(); creator=new redcorecreator(); core=creator.getpencore(); b1.userpencore(core); b1.write("我开发了红笔"); creator=new blackcorecreator(); core=creator.getpencore(); b1.userpencore(core); b1.write("我开发了黑笔"); } }
关于工厂方法模式个人总结:
(1)一般情况下工厂方法模式中具体构造者与具体产品一一对应,一个具体构造者生产一个具体产品。
(2)工厂方法模式非常类似于现实生活中的生产模式:最上级下达一个开始生产的命令,下级就开始按照自己的生产方法和目标生产不同的产品,供不同的用户使用。
相关文章推荐
- Java实践之路(设计模式)——工厂模式(简单工厂)
- 设计模式:一个体现Java接口及工厂模式优点的例子
- 【设计模式】java工厂模式代码示例
- java设计模式—工厂模式
- 学习:java设计模式—工厂模式
- Java实践之路(设计模式)——工厂模式(工厂方法)
- 学习:java设计模式—工厂模式
- java设计模式———工厂模式(工厂方法模式)
- 学习:java设计模式—工厂模式
- java设计模式—工厂模式
- java设计模式—工厂模式
- Java设计模式 创建模式-工厂模式(Factory)
- java设计模式—工厂模式
- java设计模式—工厂模式
- Java设计模式:单态模式,工厂模式,代理模式,观察者模式示例
- Java设计模式—工厂模式
- java设计模式(2)--工厂模式
- java设计模式—工厂模式
- java设计模式——工厂模式
- 新手学习java设计模式之路——工厂模式