[Objective-C 设计模式]工厂方法模式

工厂方法模式 :  定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

优点

1、  在工厂方法中,用户只需要知道所要产品的具体工厂,无须关心具体的创建过程,甚至不需要具体产品类的类名。

2、  在系统增加新的产品时,我们只需要添加一个具体产品类和对应的实现工厂,无需对原工厂进行任何修改,很好地符合了“开闭原则”。

缺点

1、  每次增加一个产品时,都需要增加一个具体类和对象实现工厂,是的系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。

2、大量的类暴露出来,需要自己去选择使用哪个工厂,使用起来过于繁琐。
总结

1、工厂方法模式完全符合“开闭原则”。

2、工厂方法模式使用继承,将对象的创建委托给子类,通过子类实现工厂方法来创建对象。

3、工厂方法允许类将实例化延伸到子类进行。

4、工厂方法让子类决定要实例化的类时哪一个。在这里我们要明白这并不是工厂来决定生成哪种产品,而是在编写创建者类时,不需要知道实际创建的产品是哪个,选择了使用哪个子类,就已经决定了实际创建的产品时哪个了。

5、在工厂方法模式中,创建者通常会包含依赖于抽象产品的代码,而这些抽象产品是、由子类创建的,创建者不需要真的知道在制作哪种具体产品。

项目地址:https://github.com/GameRisker/Study-Design-Patterns.git

参考:http://www.cnblogs.com/chenssy/(Java 版本)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.