简单工厂 优点 缺点 如何改进缺点

简单工厂的设计模式解决的问题是,在客户端创建一系列类的对象的时候,需要进行硬编码。修改对象的时候,同时需要修改客户端来避免出现问题。

在众多的产品中增加一个抽象层,让所有产品都实现一个相同的接口。增加一个工厂类,使用一个静态方法来生产这个相同接口的变量。通过传入参数的变化来改变生产对象的类别。

优点

简单工厂模式能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。明确区分了各自的职责和权力,有利于整个软件体系结构的优化。

缺点

很明显工厂类集中了所有实例的创建逻辑,容易违反GRASPR的高内聚的责任分配原则
同时来说,如果要增加新的产品的话,就需要修改工厂类。类似增加新的switch的case语句或者相似的逻辑。违反了开闭原则。

如何改进缺点

这就引出来工厂方法这一模式。