【设计模式】工厂模式

简介: 【设计模式】工厂模式

一、定义

一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行

具体实现

1. namespace 工厂方法
2. {
3.     internal class Program
4.     {
5. static void Main(string[] args)
6.         {
7. //我要一个苹果X手机
8. IApplePhoneFactory applexPhone = new IphoneXFactory();
9. IAppleProduct X = applexPhone.getAppleProduct();
10. //我要一个苹果手机
11. IphoneXProduct iphoneX = new IphoneXProduct();
12. 
13.         }
14.     }
15. 
16. //构建苹果手机工厂接口
17. interface IApplePhoneFactory
18.     {
19. //获取具体产品
20.         IAppleProduct getAppleProduct();
21. 
22.     }
23. 
24. //抽象的产品接口
25. public interface IAppleProduct
26.     {
27. void ProductIphone();
28.     }
29. 
30. //苹果X产品的具体实现工厂
31. public class IphoneXFactory : IApplePhoneFactory
32.     {
33. //实现
34. public IAppleProduct getAppleProduct()
35.         {
36. return new IphoneXProduct();
37.         }
38.     }
39. //苹果X产品生产类
40. public class IphoneXProduct : IAppleProduct
41.     {
42. public void ProductIphone()
43.         {
44.             Console.WriteLine("我是苹果X");
45.         }
46.     }
47. }

二、应用

1、主要解决

接口选择的问题

2、什么时候使用?

当我们明确地计划不同条件下创建不同实例的时候

3、如何解决

让其子类实现工厂接口,返回的也是一个抽象的产品

4、优点

  • 一个调用者想创建一个对象,只要知道其名称就可以了
  • 扩展性高,如果增加一个产品,只要扩展一个工厂类就可以
  • 屏蔽产品的具体实现,调用者只关心产品的接口

5、缺点

每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖


相关文章
|
6月前
|
设计模式 数据格式 XML
设计模式-工厂模式-1-1
【6月更文挑战第10天】本文介绍了工厂模式的两种主要类型:简单工厂和工厂方法。简单工厂模式通过工厂类动态创建对象,例如根据配置文件后缀选择不同解析器。为提高可读性和复用性,可将创建逻辑封装到独立类中。当需添加新解析器时,可能涉及对工厂类的修改,但这在偶尔调整时可接受。工厂方法模式则通过多态消除if分支,增加扩展性,更符合开闭原则。当需要新增解析器时,只需创建实现特定接口的新工厂类。
34 2
设计模式-工厂模式-1-1
|
6月前
|
设计模式 XML 缓存
设计模式-工厂模式-1-2
【6月更文挑战第11天】工厂模式用于封装对象创建,但当load函数与工厂类耦合时,问题出现。为解决此问题,引入了工厂的工厂,如`RuleConfigParserFactoryMap`,它创建并缓存工厂对象,简化了代码修改。然而,过多的Factory类会增加复杂性,简单工厂模式在此类应用中更为适用。当对象创建逻辑复杂,需组装其他对象或避免if-else时,采用工厂方法模式。抽象工厂则处理多维度分类的对象创建。总结:工厂模式的核心价值在于封装变化、代码复用、隔离复杂性和控制复杂度,适用于创建逻辑复杂的情况,否则直接使用new操作即可。
32 5
|
7月前
|
设计模式 算法 uml
C++设计模式(工厂模式)
C++设计模式(工厂模式)
112 1
C++设计模式(工厂模式)
|
设计模式 Java C#
设计模式之工厂模式(2)
接着,我们定义一个抽象工厂类AbstractFactory,它有两个抽象方法createShape和createColor,分别返回一个Shape对象和一个Color对象: java
57 0
|
设计模式 前端开发 Java
设计模式之工厂模式(1)
工厂模式是一种对象创建型模式,它提供了一种创建对象的最佳实践。在工厂模式中,我们在创建对象时不使用 new 关键字,而是通过调用工厂方法来创建对象。工厂方法是一种在子类中定义的方法,该方法负责实例化对象。工厂方法可以返回不同的对象类型,因此工厂模式可以创建一组相关或不相关的对象。这样就可以将对象的创建和使用解耦。
66 0
|
设计模式
设计模式之工厂模式
设计模式之工厂模式
65 0
|
设计模式 Java 数据库
设计模式之工厂模式(一)
设计模式之工厂模式
64 0
|
设计模式 SQL 搜索推荐
设计模式之工厂模式(二)
设计模式之工厂模式
115 0
|
设计模式 Java uml
《设计模式》工厂模式
《设计模式》工厂模式
《设计模式》工厂模式
|
设计模式 JavaScript Java
浅析设计模式1 —— 工厂模式
本文将着眼于工厂模式,从简单工厂模式、工厂方法模式和抽象工厂模式出发,展开学习和深入探讨。 本文为此系列第一篇。
168 0
浅析设计模式1 —— 工厂模式