简单工厂模式
-
目的:
-
不向客户透露对象实例化细节
-
通过通用接口创建对象
-
成员角色:
-
简单工厂
-
抽象产品
-
具体产品
-
客户测试类
-
代码示例见Github:https://github.com/Clan-Leisure/model
-
优点:
-
工厂类负责与客户端对接,直接给客户端(测试类)提供产品(对象实例),使得对象的创建和使用相分离,有利于功能复用和系统维护
-
因为客户端无需与具体的产品类打交道,因此可以不知道产品类名,仅需知道具体产品类参数即可,减少使用记忆负担
-
可以在不修改客户端的情况下对产品进行升级(crud),提高系统灵活性
-
缺点:
-
因为所有的创建对象实例都是由工厂类负责的,所以一旦工厂类出现问题,将会导致所有相关客户端都出现问题
-
一旦添加新的产品类,一定要在工厂类中添加实现,会照成工厂逻辑复杂冗长
-
应用场景:
-
工厂产品类较少
-
客户只知道参数,对于产品实现细节不关心。例如,有个养鱼场,客户想买草鱼,鲤鱼,只需知道“草鱼”和“鲤鱼”这两个词就就可以,而不关心他们是怎么被养大的。
-
总结:
-
简单工厂模式中产品类过多就会造成工厂类过于复杂,不符合高内聚原则,因此只适合简单情况使用。
网友评论