23种设计模式UML图

23种设计模式UML图设计模式 UML 图创建型模式 5 种 工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式

大家好,欢迎来到IT知识分享网。

23种设计模式UML图

总体来说基本的23种设计模式分为三大类:

创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

文章目录

1、简单工厂模式

例(计算器)

23种设计模式UML图

例(商场促销)

23种设计模式UML图

2、策略模式

策略模式UML结构图

23种设计模式UML图

例(商场促销)

23种设计模式UML图

环境角色:

class CashContext { private CashSuper cs; public CashContext(CashSuper csuper) { this.cs = csuper; } public double GetResult(double money) { return cs.acceptCash(money); } } 

策略模式+简单工厂模式

23种设计模式UML图

3、装饰模式

装饰模式UML结构图

23种设计模式UML图

基本代码展示:

 abstract class Component { public abstract void Operation(); } class ConcreteComponent : Component { public override void Operation() { Console.WriteLine("具体对象的操作"); } } abstract class Decorator : Component { protected Component component; public void SetComponent(Component component) { this.component = component; } public override void Operation() { if (component != null) { component.Operation(); } } } class ConcreteDecoratorA : Decorator { private string addedState; public override void Operation() { base.Operation(); addedState = "New State"; Console.WriteLine("具体装饰对象A的操作"); } } class ConcreteDecoratorB : Decorator { public override void Operation() { base.Operation(); AddedBehavior(); Console.WriteLine("具体装饰对象B的操作"); } private void AddedBehavior() { } } 
例(给人搭配不同的服饰)(装饰模式做法)

23种设计模式UML图

例(InputStream)

23种设计模式UML图

例(OutputStream)(新增了自定义的装饰器EncryptedOutputStream)

23种设计模式UML图

4、代理模式

代理模式UML结构图

23种设计模式UML图

例(为别人做嫁衣——请代理送礼物)

23种设计模式UML图·

5、工厂方法模式

简单工厂 VS 工厂方法(以计算器为例)

简单工厂UML结构图(以计算器为例)

23种设计模式UML图

工厂方法UML结构图(以计算器为例)

23种设计模式UML图

工厂方法模式UML结构图

23种设计模式UML图

6、原型模式

原型模式UML结构图

img

例(订单处理系统(深复制)——Java

23种设计模式UML图

7、外观(门面)模式

外观模式UML结构图

img

8、模板方法模式

例(登录界面实现)

img

例(通过JDBC方式连接数据库)

img

9、建造者(生成器)模式

建造者模式UML结构图

img

例(文件备份)(文件头、主体、结尾):

img

10、观察者模式

观察者模式UML结构图

img

23种设计模式UML图

例(股票行情变动)

img

11、抽象工厂模式

例(工厂方法模式下的数据库访问UML图)

img

例(抽象工厂模式下的数据库访问UML图)

img

抽象工厂模式UML结构图

img

利用简单工厂改进抽象工厂(以选择数据库为例)

去除IFactory、SqlserverFactory和AccessFactory三个工厂类,取而代之的是DataAccess类,用一个简单工厂模式来实现:

UML图:

img

例(反射+配置文件+简单工厂改造后的抽象工厂实现数据库访问)

23种设计模式UML图

12、状态模式

状态模式UML结构图

img

例(工作状态)

23种设计模式UML图

13、适配器模式

适配器模式UML结构图

23种设计模式UML图

14、备忘录模式

备忘录模式UML结构图

img

例(游戏进度备忘)

img

15、组合模式

组合模式UML结构图

23种设计模式UML图

16、迭代器模式

迭代器模式UML结构图

23种设计模式UML图

17、单例模式

单例模式UML结构图

23种设计模式UML图

18、桥接模式

例(不同品牌手机软件的安装)
按品牌分类:

img

按软件实现分类:

img

桥接模式实现:

img

桥接模式UML结构图

img

全部采用继承,不使用桥接模式的UML图(如果继续扩展消息类型或者发送方式将会十分繁琐):

23种设计模式UML图

例:继续添加发送手机消息的处理方式(这个时候代码结构就逐渐开始变得复杂):

23种设计模式UML图

桥接模式实现:

img

19、命令模式

命令模式UML结构图

img

例(烤羊肉串)

img

例(计算器——允许执行undo与redo)

img

20、职责链模式

职责链模式UML结构图

23种设计模式UML图

21、中介者模式

结构样例类比

imgimg

中介者模式UML结构图

img

22、享元模式

享元模式UML结构图

img

例(申请网站)

(一组网站的结构是类似的,我们看成是可共享的部分(内部状态),而每个网站的用户是不同的,不可共享的,是外部状态):

UML图:

img

例(五色棋)

(棋子的颜色是类似的,只有固定的几种,可以看成是可共享的(内部状态),但是棋子的位置是不确定的,是不可共享的(外部状态))

UML图:

img

23、访问者模式

访问者模式UML结构图

23种设计模式UML图

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/151498.html

(0)
上一篇 2025-03-13 15:25
下一篇 2025-03-13 15:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信