工厂三姊妹

简介: 昨天听完同学们的分享和老师的讲解,加上之前对三个工厂知识的积累,我对三个工厂方法的理解回归了最开始的定义,简练而精辟。工厂主要分为:简单工厂,工厂方法,抽象工厂。

 昨天听完同学们的分享和老师的讲解,加上之前对三个工厂知识的积累,我对
三个工厂方法的理解回归了最开始的定义,简练而精辟。工厂主要分为:简单工厂,工厂方法,抽象工厂。


简单工厂模式(Simple Factory Pattern):


定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。它虽不属于GoF 23种设计模式,但在软件开发中应用也较为频繁,通常将它作为学习其他工厂模式的入门。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。


  简单工厂虽然简单,但当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生。


工厂方法模式(Factory Method Pattern):


 定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)。工厂方法模式是一种类创建型模式。


抽象工厂模式(Abstract Factory Pattern):


 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。抽象工厂模式为创建一组对象提供了一种解决方案。与工厂方法模式相比,抽象工厂模式中的具体工厂不只是创建一种产品,它负责创建一族产品。


总结:  


正如老师带给我们的故事:简单工厂是师母给师傅做饭,当我们的需求增大时,需要请一个厨师来帮忙,工厂方法模式就像我们和厨师的关系,提出做饭和做饭不在一起执行,将需求和实现分开。而当我们想吃不同口味的水煮鱼和红烧肉时,抽象工厂模式就应运而生了。



相关文章
|
21天前
|
传感器 人工智能 5G
|
5月前
|
算法
从大工厂到小作坊
在百度工作三年后,作者经历了团队士气低落和项目业绩下滑的困境。产品问题主要归咎于不以人为本的设计和频繁的组织架构调整,导致目标模糊。尽管有技术优势,但用户不买账,产品变得复杂难用。组织动荡使团队协作受阻,最终因业务收缩而离职。加入一家小型创业公司后,作者感到轻松和希望,新项目展现出前景,团队齐心协力。
|
设计模式 算法 前端开发
【大话设计模式】-简单工厂-工厂方法-自动化实现工厂工厂方法!
【大话设计模式】-简单工厂-工厂方法-自动化实现工厂工厂方法!
109 0
|
供应链
智慧工厂概念
智慧工厂概念
152 0
简单工厂、工厂、抽象工厂总结
简单工厂、工厂、抽象工厂总结
46 0
|
设计模式 Java uml
简单工厂VS工厂方法&手写自动化工厂——系统学习六
然而我的观点是工厂方法是为了解决自动化创建对象的问题;如何理解这句话?请读者朋友继续往下看。
|
XML Java 数据格式
|
设计模式
设计模式 - 简单工厂(静态工厂)& 工厂方法(构建工厂)
设计模式 - 简单工厂(静态工厂)& 工厂方法(构建工厂)
100 0
设计模式 - 简单工厂(静态工厂)& 工厂方法(构建工厂)
|
数据采集 运维 监控
智慧工厂,来晶澳看看!
走向世界的义乌制造,不再只有传统概念中的“小商品”。 一座年产值170亿的光伏生产基地,正在这里不间断运作。厂区内,16块大屏组成的监测区域实时更新,显示着所有产线的运行情况,包括MES驾驶舱、AGV运行系统、生产网格化管理系统晶豹、实时监控等等。
696 0
智慧工厂,来晶澳看看!
定义一个创造汽车的工厂类
# 定义奔驰车类 class BenchiCar(object): # 定义车的方法 def move(self): print('---奔驰车在移动---') def stop(self): print('---奔驰车停车了---') #...
870 0