当前位置:首页 > 科技 >

简单工厂模式和工厂模式区别(工厂方法模式的通俗理解)

来源:原点资讯(m.360kss.com)时间:2024-07-04 05:19:19作者:YD166手机阅读>>

简单工厂模式和工厂模式区别,工厂方法模式的通俗理解(1)

简单工厂模式(Simple Factory Pattern)是一种创建型的设计模式,主要用于创建对象实例。在简单工厂设计模式中,工厂类主要是负责创建其他类的对象,而客户端则不需要直接创建对象,只需要向工厂类请求所需的对象就可以了。通过简单工厂我们可以将对象的创建逻辑封装其中,这样可以降低客户端与具体对象之间的耦合度,提升业务代码的扩展性。

简单工厂模式的设计思路

第一步、定义接口或抽象类

简单工厂设计模式首先需要确定的就是创建的对象的公共接口或者抽象类,这个接口或抽象类定义主要就是用来定义对象的行为或方法。

第二步、创建具体类

根据接口类来实现接口或抽象类的具体操作类,这些操作类就是实现了接口或抽象类中定义的方法,然后对其进行了具体的实现。

第三步、创建工厂类

创建工厂类,这个工厂类就是负责根据客户端的请求来创建具体的对象实例。在这个工厂类中通常包含一个可以根据不同的条件或参数创建对象的方法,它的返回值就是不同类型的对象实例。

第四步、客户端使用

在进行客户端调用的时候通过工厂类的方法创建所需的对象实例,客户端不需要直接创建对象。只需要知道需要什么类型的对象,不需要了解对象的创建细节。

简单工厂模式的实现示例

假设我们有一个形状接口 Shape,以及两个实现类 CircleRectangle,它们都实现了 Shape 接口。我们通过简单工厂模式创建不同类型的形状对象。如下所示。

// 形状接口 public interface Shape { void draw(); } // 圆形类 public class Circle implements Shape { @Override public void draw() { System.out.println("画一个圆形"); } } // 矩形类 public class Rectangle implements Shape { @Override public void draw() { System.out.println("画一个矩形"); } } // 形状工厂类 public class ShapeFactory { // 根据类型创建形状对象 public Shape createShape(String type) { if ("circle".equalsIgnoreCase(type)) { return new Circle(); } else if ("rectangle".equalsIgnoreCase(type)) { return new Rectangle(); } else { throw new IllegalArgumentException("不支持的形状类型"); } } } // 客户端代码 public class Client { public static void main(String[] args) { // 创建形状工厂对象 ShapeFactory factory = new ShapeFactory(); // 创建圆形对象 Shape circle = factory.createShape("circle"); circle.draw(); // 输出:画一个圆形 // 创建矩形对象 Shape rectangle = factory.createShape("rectangle"); rectangle.draw(); // 输出:画一个矩形 } }

在上面的示例中,ShapeFactory 类充当了简单工厂的角色,有它来负责根据客户端请求创建不同类型的形状对象。客户端只需要向工厂类请求所需的形状对象,而不需要直接与具体的形状类交互。这样可以降低客户端与具体形状类之间的耦合度,并且方便地扩展新的形状类。

简单工厂模式适用于以下场景
  • 对象创建逻辑相对简单:当对象的创建逻辑相对简单,不涉及复杂的条件判断或者依赖关系时,可以考虑使用简单工厂模式。
  • 客户端只需要知道对象类型:当客户端只需要知道对象的类型,而不需要了解对象的创建细节时,可以使用简单工厂模式。客户端只需要调用工厂类的方法,并传入相应的参数或条件,即可获取所需的对象实例。
  • 需要将对象的创建逻辑封装起来:如果需要将对象的创建逻辑进行封装,方便进行统一的对象分配管理维护的时候,我们可以考虑使用简单工厂模式。通过简单工厂模式将对象的创建逻辑封装在工厂类中,可以隐藏一些对象的实现细节。

根据上面的介绍,我们知道,通过简单工厂模式,实现对象之间的解耦。使得代码灵活性更高,更容易扩展。

,

栏目热文

羊奶适合每天喝吗(羊奶不建议长期喝吗)

羊奶适合每天喝吗(羊奶不建议长期喝吗)

羊奶要喝多少?喝少了难以发挥作用效果,喝多了难以吸收浪费了。需根据年龄阶段、工作强度来区分羊奶的用量。在正常的饮食下,每...

2024-07-04 05:28:21查看全文 >>

羊奶怎么能喝下去(羊奶为什么不建议喝)

羊奶怎么能喝下去(羊奶为什么不建议喝)

在早餐时间,很多人都有喝奶的习惯。以前说到奶,大多数人想到的是牛奶,而随着时代的进步和生活水平的提高,羊奶凭借高营养价值...

2024-07-04 05:06:46查看全文 >>

羊奶为什么可以直接喝(新鲜的羊奶为什么不能直接喝)

羊奶为什么可以直接喝(新鲜的羊奶为什么不能直接喝)

我相信这几天大家都看到了这个新闻,西安有个儿童喝了现挤的羊奶之后,患了“布病”。布病是布氏杆菌病的简称,是由布鲁杆菌感染...

2024-07-04 05:20:55查看全文 >>

简单又有营养的饭(简单又非常好吃的饭)

简单又有营养的饭(简单又非常好吃的饭)

米饭是我们平常生活中最常吃的主食之一,米饭的做法也非常简单,就是简简单单地把大米一淘,然后装入电饭煲中,加上适量的清水,...

2024-07-04 05:25:21查看全文 >>

喜羊羊与灰太狼哪一部是有妖气的(喜羊羊与灰太狼最值得看哪一部)

喜羊羊与灰太狼哪一部是有妖气的(喜羊羊与灰太狼最值得看哪一部)

大家好!我是爱分享消息的幕落。突然发现《喜羊羊与灰太狼之遨游神秘游》上线了,是《喜羊羊与灰太狼之羊村守护者》系列的第七部...

2024-07-04 04:48:09查看全文 >>

简单工厂模式的优势(工厂模式与工厂方法模式的区别)

简单工厂模式的优势(工厂模式与工厂方法模式的区别)

引言在软件设计中,工厂模式作为一种创建型设计模式,以其独特的设计理念和实现方式为系统架构带来了诸多优势。本文将详细介绍工...

2024-07-04 05:32:06查看全文 >>

工厂的生态模式(如何把濒临倒闭的工厂做起来)

工厂的生态模式(如何把濒临倒闭的工厂做起来)

齐鲁网·闪电新闻10月24日讯 建立健全绿色低碳循环发展经济体系,促进经济社会发展全面绿色转型,是解决我国资源环境生态问...

2024-07-04 04:58:48查看全文 >>

通俗理解工厂模式(工厂模式三种详解)

通俗理解工厂模式(工厂模式三种详解)

核心作用定义一个用于创建产品的接口,由子类决定生产什么产品。分类简单工厂模式工厂方法模式抽象工厂模式简单工厂模式简单工厂...

2024-07-04 04:55:24查看全文 >>

简单工厂模式和抽象工厂模式(设计模式深入浅出之工厂模式)

简单工厂模式和抽象工厂模式(设计模式深入浅出之工厂模式)

前面的22个常用的设计模式现已学习完毕,大家可以看到22个设计模式中提及到了带有“工厂”性质的相关模式,例如:构建方法...

2024-07-04 05:32:48查看全文 >>

工厂模式有哪些好处(工厂模式和简单工厂模式的区别)

工厂模式有哪些好处(工厂模式和简单工厂模式的区别)

在程序中类是表示客观世界存在的某类群体的一些基本特征的抽象,对象就是一个个具体的东西,也可以理解为类的一个具体实例。工厂...

2024-07-04 05:30:41查看全文 >>

文档排行