深入设计模式-2.工厂方法模式

1.简介


工厂方法模式是又简单工厂模式衍生而成,完全实现了‘开-闭原则’。工厂方法模式将具体核心工厂进一步抽象,抽象核心工厂不再负责生产产品,只负责工厂子类必须实现的接口,子类工厂负责生产响应产品,每一类产品对应响应的子类工厂,每个具体工厂子类对应一个产品,添加一个产品只要添加相应的产品子类工厂即可实现功能。


2.结构

3.角色


抽象工厂角色:核心工厂,所有子工厂类都必须实现此接口,提供工厂生产方法给子类实现。(Factory)

具体工厂子类:工厂子类,抽象工厂的实现者,具体生产方法的实现者。(IronCupFactory、GlassCupFactory)

抽象产品角色:所有产品的超类。(Cup)

具体产品角色;具体产品,抽象产品的实现者。(IronCup、GlassCup)


4.示例

//抽象工厂角色

public interface Factory{

public Cup getCup();

}

//具体工厂类

public class IronCupFactory implements Factory{

public Cup getCup();

}

//具体工厂类

public class GlassCupFactory implements Factory{

public Cup getCup();

}

//抽象产品角色

public interface Cup{

public String say();

}

//具体产品

public class IronCup implements Cup{

public String say(){

return "I am IronCup";

}

}

//具体产品

public class GlassCup implements Cup{

public String say(){

return "I am GlassCup";

}

}

//client

public class Main{

public static void main(String[] args){

Cup c = null;

Factory factory = new IronFactory();

c = factory.getCup();

if(null!=c){

System.out.println(c.say());

}

factory = new GlassFactory();

c = factory.getCup();

if(null!=c){

System.out.println(c.say());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值