设计模式之-5.建造者模式

设计模式,玄乎又悬,昨天还看得清清楚楚真真切切,但是过了一天就全然不明不白,终其原因呢,无外乎就是压根这个东西就理解,但是就是说不来是什么东西。

说下我对建造者模式的初步理解:

建造者模式:我举个例子吧:你去肯德基消费,肯德基里面有炸鸡,啤酒,可乐,汉堡,薯条。等各种各样的东西,你去不去人家都在那里,然后你进去一下有吃不完,选个套餐,套餐1:炸鸡和啤酒;套餐2:汉堡和薯条;首先你得创建一个肯德基的类,然后设法向其中传递你想选的套餐名字,然后调用点餐的方法就完事了; 在肯德基的类中呢,有各种各样的属性:比如说制作炸鸡的师傅,制作啤酒的师傅,制作汉堡的机器,制作薯条的师傅,然后这些师傅都是肯德基的属性,收到客人点餐(就是主方法里面调用点餐的方法)各个师傅各自忙活自己的(也就是说各个师傅都有自己的类,可以生产出来这些东西),在肯德基类的点餐方法中分别通知各个师傅进行生产,各司其职;这就是所谓的建造者模式;

下面是应用比较官方的话:

  • 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示;
  • 主要解决:主要解决在软件系统中,有时候面临着“一个复杂对象"的创建工作,期通常由各个部分的子对象用一定的算法构成,由于需求的变化,这个复杂的对象的各个部分经常面临着剧烈的变化,但是将他们组合在一起的算法却相对稳定。
  • 何时使用:一些基本不见不会变,而其组合经常变化的时候。
  • 如何解决:将变与不变分离开。
  • 优点:1.建造者独立,易扩展。2.便于控制细节风险。
  • 使用场景:1.需要生成的对象具有复杂的内部结构。2.需要生成的对象内部属性本身相互依赖。
  • 注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序。

你可能感兴趣的:(设计模式之-5.建造者模式)