Jerry Lee

stay hungry,stay young.

Welcome to my world.


设计模式 生成器模式



定义

也叫创建者模式,它将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

举例

生成器模式将复杂的创建逻辑进行分割,例如生产汽车,分步骤创建安装不同的零件。如果创建逻辑简单则没有拆分的必要。

优点

1、客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解耦,使得相同的创建过程可以创建不同的产品对象;

2、每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者, 用户使用不同的具体建造者即可得到不同的产品对象;

3、增加新的具体建造者无须修改原有类库的代码,指挥者类针对抽象建造者类编程,系统扩展方便,符合“开闭原则”;

4、可以更加精细地控制产品的创建过程。将复杂产品的创建步骤分解在不同的方法中,使得创建过程更加清晰,也更方便使用程序来控制创建过程

缺点

1、建造者模式所创建的产品一般具有较多的共同点,其组成部分相似,如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制;

2、如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大。

##代码举例##

@interface Builder : NSObject
+ (void)buildEngine;
+ (void)buildWheel;
+ (void)buildBody;
@end
最近的文章

苹果内购

最近面试过程中,被面试官多次问到苹果内购相关的实现及遇到的问题,这里梳理以下,做个总结吧。内购关键流程1、客户端发起支付2、客户端监听购买流程3、苹果回调订单购买成功时,客户端把苹果给的receipt_data和一些订单信息上报给服务器4、服务器拿到receipt_data向苹果服务器校验5、苹果服务器返回status为0则表示发回成功其他返回值也记录总结一下21000 :App Store无法读取你提供的JSON数据21002 :收据数据不符合格式21003 :收据无法被验证21004 ...…

继续阅读
更早的文章

设计模式 单例模式

定义单例模式确保某一个类只有一个实例,并提供一个访问它的全局访问点。举例单例模式下,对应类只能生成一个实例。就像一个王国只能有一个国王,一旦王国里的事物多起来,这唯一的国王也容易职责过重。优点1、提供了对唯一实例的受控访问。因为单例类封装了它的唯一实例,所以它可以严格控制客户怎样以及何时访问它;2、因为该类在系统内存中只存在一个对象,所以可以节约系统资源。缺点1、由于单例模式中没有抽象层,因此单例类很难进行扩展;2、对于有垃圾回收系统的语言Java,C#来说,如果对象长时间不被利用,则可能...…

继续阅读