FactoryMethodPattern(工厂方法模式)-----Java/.Net

也就是工厂方法(FactoryMethod)模式允许将产品类的实例化推迟到具体的创建者子类,由创建者子类决定实例化哪一个产品类。我们同样以汽车的生产作为讲解该模式的例子,因为汽车生产从宏观上来说也是特别符合这个模式的。我要一辆汽车,什么品牌的我没有要求,符合是汽车这个标准就行了。那么世面上不同的汽车生产商就会用自己的生产流程生产出符合汽车这个标准的不同品牌汽车。同样,我们也撸起袖子码一码!因为该模式没有强调待生产的产品类是复杂的,同样也为了减少大家的代码阅读,这次我们把汽车相关类定义的更简单一点!

原文地址:https://www.cnblogs.com/vic-tory/p/12147355.html

时间: 2024-10-08 10:41:37

FactoryMethodPattern(工厂方法模式)-----Java/.Net的相关文章

设计模式之第1章-工厂方法模式(Java实现)

设计模式之第1章-工厂方法模式(Java实现) “我先来”,“不,老公,我先!”.远远的就听到几个人,哦不,是工厂方法模式和抽象工厂模式俩小夫妻在争吵,尼妹,又不是吃东西,谁先来不都一样(吃货的世界~).“抽象工厂模式,赶紧的自我介绍,工厂方法模式,你身为男人,要懂得绅士风度,lady first懂不懂,稍后再来,急什么.”(画外音:鱼哥,这是我家祖传的小吃,还有我爹的好酒blablabla),“哎呀,那个抽象工厂模式,阿姨喊你回家吃饭了.”“哦,我去去就回,等我啊.”工厂方法,赶紧的.“等等,

设计模式-工厂方法模式[JAVA版]

上篇讲述简单工厂模式,其优点在于通过工厂类进行业务解耦.但是工厂方法中包含了逻辑判断,根据客户端的选择条件动态实例化相关的类,如果添加新的手机型号,则需要修改工厂类里的逻辑判断,新增case去判断该型号的分支,这违背了开放-封闭的设计原则. 开放-封闭原则,是说类.模块.函数等等,可以扩展,但是不能修改 工厂方法模式在简单工厂模式的基础上进一步抽象,将原有的工厂抽象出一个接口,这个接口只有对应一个创建工厂的方法,每一个产品都对应一个具体的工厂类. 工厂方法模式的UML如下: 工厂方法模式的实现

工厂方法模式 java实现

当增加新的产品时,我们就需要修改简单工厂类,这违反了涉及模式中的 "对扩展开放,对修改关闭". 解决方案是抽象工厂类,让抽象工厂类的子类去实例化具体产品. 在这种设计下,每增加一个产品就需要增加一个对应的具体工厂,看似繁琐,但扩展性好. 类图 代码

创建多个“产品”的方式——工厂方法模式总结

简单工厂模式严格来说不算一个设计模式——缺点 继续说之前提到的简单工厂模式,严格来说,这不算一个设计模式……而且在业务量比较多了之后,它也有诸多的隐患 1.由于工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连 2.由于简单工厂模式的产品基于一个共同的抽象类或者接口,这样一来,产品的种类增加的时候,即有不同的产品接口或者抽象类的时候,简单工厂类就需要维护大量的if-else判断,比如导入导出功能,虽然可以用反射或者配置文件,注解等解耦,但是还有更好的办法.

工厂方法模式(Java与Kotlin版)

前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次尝试用Kotlin实现Android项目 1. 定义 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式.在工厂方法模式中,工厂父类负责

java/android 设计模式学习笔记(3)---工厂方法模式

这篇来介绍一下工厂方法模式(Factory Method Pattern),在实际开发过程中我们都习惯于直接使用 new 关键字用来创建一个对象,可是有时候对象的创造需要一系列的步骤:你可能需要计算或取得对象的初始设置:选择生成哪个子对象实例:或在生成你需要的对象之前必须先生成一些辅助功能的对象,这个时候就需要了解该对象创建的细节,也就是说使用的地方与该对象的实现耦合在了一起,不利于扩展,为了解决这个问题就需要用到我们的工厂方法模式,它适合那些创建复杂的对象的场景,工厂方法模式也是一个使用频率很

JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 "过程",不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题:你如何能轻松方便地构造对象实例,而不必关心构造对象实

【java】 java 设计模式(1):工厂方法模式(Factory Method)

工厂方法模式分为三种: 1.普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口:   public interface Sender { public void send(); } 其次,创建实现类: public class MailSender implements Sender { @Override public void send() { System.out.println

Java设计模式3:工厂方法模式

工厂方法模式 工厂方法模式是类的创建模式.工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中. 工厂方法模式 工厂方法模式是对简单工厂模式进一步抽象的结果. 假如是不使用反射的工厂方法模式,那么所有的if... else if...else都放在工厂类中,势必造成工厂类的无限臃肿 这时候就需要工厂方法模式来处理这个问题了.工厂方法模式中,核心的工厂类不再负责所有对象的创建,而是将具体的创建工作交给子类去做.这个类则摇身一变变成了一个抽象工厂角色,仅仅负责给出具体工厂子