设计模式工厂方法uml简单工厂模式uml
时间: 2024-05-03 15:15:37 浏览: 10
工厂方法模式和简单工厂模式都是创建型设计模式,用于解耦对象的创建和使用。
简单工厂模式通过一个工厂类来创建不同类型的对象,客户端只需要知道需要什么类型的对象即可,而无需关心具体的实现细节。简单工厂模式的UML类图如下:
![简单工厂模式UML](https://img-blog.csdn.net/20170602103102277?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNzgzNjA3MjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
工厂方法模式将简单工厂模式中的工厂类抽象成了一个抽象工厂接口,每个具体的产品类都有自己对应的工厂类,客户端通过调用具体的工厂类来创建对应的产品。这样,当新增一种产品时,只需要新增一个具体的产品类和对应的工厂类即可,无需修改原有代码。工厂方法模式的UML类图如下:
![工厂方法模式UML](https://img-blog.csdn.net/20170602105249133?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfNzgzNjA3MjM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/70)
相关问题
工厂方法模式分析UML 图
工厂方法模式是一种创建型设计模式,它定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类。
下面是工厂方法模式的UML图示:
```
+--+ +--+
| Creator | | Product |
+--+ +--+
| | | |
| +factoryMethod() |<-->| |
| | | |
+--+ +--+
▲ ▲
| |
| |
+--+ +--+
| ConcreteCreator1| | ConcreteProduct1|
+--+ +--+
| | | |
| +factoryMethod() | | |
| | | |
+--+ +--+
▲ ▲
| |
| |
+--+ +--+
| ConcreteCreator2| | ConcreteProduct2|
+--+ +--+
| | | |
| +factoryMethod() | | |
| | | |
+--+ +--+
```
在上面的UML图中,有以下几个角色:
- Creator(创建者):抽象类或接口,声明了一个工厂方法,该方法返回一个Product对象。
- ConcreteCreator(具体创建者):继承或实现Creator,实现工厂方法,返回具体的Product对象。
- Product(产品):抽象类或接口,定义了具体产品的共同属性和方法。
- ConcreteProduct(具体产品):继承或实现Product,实现具体产品的属性和方法。
工厂方法模式的核心思想是将对象的创建延迟到子类,这样可以在不修改现有代码的情况下引入新的产品类型。
23种设计模式uml图
设计模式是一种常用的软件设计方法,用于解决特定问题的方案。在面向对象的软件开发中,有一些经典的设计模式,其中23种是最为常见的。以下是对这23种设计模式的简要UML图解释:
1. 简单工厂模式(Simple Factory Pattern):通过一个工厂类来创建不同类型的对象。
2. 工厂方法模式(Factory Method Pattern):定义一个创建对象的接口,由子类来决定具体实例化的对象。
3. 抽象工厂模式(Abstract Factory Pattern):提供一个创建相关或依赖对象家族的接口,而无需指定具体类。
4. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。
5. 原型模式(Prototype Pattern):通过复制已有对象来创建新对象。
6. 建造者模式(Builder Pattern):将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。
7. 适配器模式(Adapter Pattern):将一个类的接口转换成客户端希望的另一个接口。
8. 桥接模式(Bridge Pattern):将抽象部分与实现部分分离,使它们可以独立变化。
9. 组合模式(Composite Pattern):将对象组合成树形结构以表示"部分-整体"的层次结构。
10. 装饰器模式(Decorator Pattern):动态地给对象添加额外的职责。
11. 外观模式(Facade Pattern):为子系统中的一组接口提供一个统一的接口。
12. 享元模式(Flyweight Pattern):使用共享对象来有效地支持大量细粒度的对象。
13. 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。
14. 责任链模式(Chain of Responsibility Pattern):将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。
15. 命令模式(Command Pattern):将请求封装成一个对象,并且可以用不同的请求来参数化其他对象。
16. 解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,通过使用该解释器来解释语言中的句子。
17. 迭代器模式(Iterator Pattern):提供一种方法顺序访问一个容器对象中的各个元素,而又不暴露其内部的表示。
18. 中介者模式(Mediator Pattern):用一个中介对象来封装一系列对象之间的交互。
19. 备忘录模式(Memento Pattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
20. 观察者模式(Observer Pattern):定义了一种一对多的依赖关系,使得当一个对象改变状态时,所有依赖它的对象都会被通知并自动更新。
21. 状态模式(State Pattern):允许对象在其内部状态改变时改变它的行为。
22. 策略模式(Strategy Pattern):定义一系列的算法,将每个算法都封装起来,并使它们之间可以互换。
23. 模板方法模式(Template Method Pattern):定义一个操作中的算法的骨架,将一些步骤延迟到子类中实现。