C#深入浅出设计模式(二)简单工厂模式Simple Factory Pattern

三种工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式。由简到繁,简单工厂模式是其中最简单,最容易理解的,它不属于二十三种设计模式。

简单工厂模式,又称静态工厂方法模式,它的整体思路就是将创建对象这一工作交给了一个工厂类去实现,它并没有像工厂方法模式那样抽象工厂类,而是仅仅将所有的产品进行了抽象,形成抽象产品类,所有的产品都在一个工厂类中生产,所以一旦需求改变,要增加新的产品,就需要修改工厂类,这不符合开闭原则,不具有很好的扩展性。

若以上文工厂方法模式中的例子,简单工厂模式只抽象了士兵的属性和定义,只有抽象产品类,而没有抽象工厂类。以下是网上一个买水果的例子,去水果摊买水果,简单工厂模式就是所有的水果都摆在一个水果摊上,买什么水果都在这一个水果摊买,一旦要进新品种的水果就需要动该水果摊摊位;而工厂方法模式则是一种水果一个水果摊,买什么水果去什么水果摊,一旦进新品种水果,直接增加一个新的水果摊,不需要改动原来的摊位。

以下图1是抽象产品类,抽象了产品的属性定义,图2、3是具体产品类,实现了两种具体的水果,图4是工厂类:

图1


图2
图3
图4

由上图可知如果需要增加新的水果,需要修改工厂类,这对扩展来说很不方便。但是,简单工厂也分离了创建者和调用者,调用时仅调用工厂类,传入参数即可得到对象。一般简单工厂类是在创建的类不多、扩展性不强的情况下使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容