工厂方法模式VS建造者模式

类型和定义

工厂方法模式属于创造性设计模式。定义一个用于创建对象的接口,让子类决定实例化哪一个类。

建造者模式也是属于创造性设计模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

举例说明

比如说需要制造一个超人

  • 使用工厂方法模式来制造,直接生产出来的就是一个力大无穷、能够飞翔、内裤外穿的超人。

  • 使用建造者模式,则需要组装头、手、脚、躯干等部分,然后再把内裤外穿,于是一个超人就出现了。

下面使用代码来实现

工厂方法模式实现

 
  1. public interface ISuperMan {

  2.    /**

  3.     * 每个超人都有特殊天赋技能

  4.     */

  5.    void spcialTallent();

  6. }

 
  1. public class BlackSuperMan implements ISuperMan {

  2.    @Override

  3.    public void spcialTallent() {

  4.        System.out.println("我是黑种人的超人,跳的非常高,刀枪不入");

  5.   }

  6. }

 
  1. public class YellowSuperMan implements ISuperMan {

  2.    @Override

  3.    public void spcialTallent() {

  4.        System.out.println("我是黄种人的超人,跳的非常高,刀枪不入");

  5.   }

  6. }

 
  1. public class SuperManFactory {

  2.    public static ISuperMan createSuperMen(String tye) {

  3.        if ("balck".equals(tye)) {

  4.            return new BlackSuperMan();

  5.       } else if ("yellow".equals(tye)) {

  6.            return new YellowSuperMan();

  7.       } else {

  8.            return null;

  9.       }

  10.   }

  11. }

 
  1. public class Client {

  2.    public static void main(String[] args) {

  3.        ISuperMan superMan = SuperManFactory.createSuperMen("yellow");

  4.        superMan.spcialTallent();

  5.   }

  6. }

输出:我是黄种人的超人,跳的非常高,刀枪不入

建议一个生产超人的工厂,具体需要生产黑超人还是黄超人,都是超人。具体这个超人是怎么组装的、什么时候把内裤外穿的都不用关心。类似于咱们去买手机时候,只管跟卖家说你要买什么牌子的什么类型的手机就行了,不需要你知道手机是怎么生产出来的。

也就是说,工厂方法模式是一个产品整体,生产出来的产品应该具有相似的功能。

。。。。。。。。。。。。。。。。。

版权原因,完整文章,请参考如下:工厂方法模式VS建造者模式

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值