搞了多年的软件开发、实施,也一直没有对设计模式有个系统的了解,突然想系统学习一下,感觉收获颇多,所以进行一下整理,首先就是简单工厂模式的学习总结。
核心思想:
简单工厂模式就是有一个工厂类根据传入的参数不同决定生产不同的产品,这些不同的产品都是继承自相同的父类或者是接口。
工厂的作用:
工厂的作用就是进行产品的分发,客户端可以直接调用工厂类的一个方法进行产品的分发。
简单工厂模式的实现:
1.一个父类 比如:一个大的汽车生产企业
2.n个子类 例如:各种不同类型的汽车生产基地,都是继承自同一个生产企业
3.一个汽车生产分发工厂 (作用是根据客户不同的需要,把要生产的汽车分发到不同的汽车生产基地)
4.客户端调用汽车生产分发工厂的方法。
优点:
1.客户端不需要关心工厂类的具体实现,只需要按照要求传入参数即可;
2.不需要每一种类型分别创建对象,有利于集中分发管理
缺点:
1.违反高内聚的思想,如果有事先考虑不到的分支,则需要修改工厂类。
2.如果分支过多,或者出现交叉分支的话不利于维护