23种设计模式UML图 您所在的位置:网站首页 工厂的设计图纸有哪些 23种设计模式UML图

23种设计模式UML图

2024-05-30 20:46| 来源: 网络整理| 查看: 265

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

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

文章目录 23种设计模式UML图总体来说基本的23种设计模式分为三大类: ==1、简单工厂模式==例(计算器)例(商场促销) ==2、策略模式==策略模式UML结构图例(商场促销) ==策略模式+简单工厂模式== ==3、装饰模式==装饰模式UML结构图例(给人搭配不同的服饰)(装饰模式做法)例(InputStream)例(OutputStream)(新增了自定义的装饰器EncryptedOutputStream) ==4、代理模式==代理模式UML结构图例(为别人做嫁衣——请代理送礼物) ==5、工厂方法模式====简单工厂 VS 工厂方法(以计算器为例)==简单工厂UML结构图(以计算器为例)工厂方法UML结构图(以计算器为例)工厂方法模式UML结构图 ==6、原型模式==原型模式UML结构图例(订单处理系统(深复制)——Java) ==7、外观(门面)模式==外观模式UML结构图 ==8、模板方法模式==例(登录界面实现)例(通过JDBC方式连接数据库) ==9、建造者(生成器)模式==建造者模式UML结构图例(文件备份)(文件头、主体、结尾): ==10、观察者模式==观察者模式UML结构图例(股票行情变动) ==11、抽象工厂模式==例(工厂方法模式下的数据库访问UML图)例(抽象工厂模式下的数据库访问UML图)抽象工厂模式UML结构图利用简单工厂改进抽象工厂(以选择数据库为例)例(反射+配置文件+简单工厂改造后的抽象工厂实现数据库访问) ==12、状态模式==状态模式UML结构图例(工作状态) ==13、适配器模式==适配器模式UML结构图 ==14、备忘录模式==备忘录模式UML结构图例(游戏进度备忘) ==15、组合模式==组合模式UML结构图 ==16、迭代器模式==迭代器模式UML结构图 ==17、单例模式==单例模式UML结构图 ==18、桥接模式==例(不同品牌手机软件的安装)按品牌分类:按软件实现分类:桥接模式实现: 桥接模式UML结构图全部采用继承,不使用桥接模式的UML图(如果继续扩展消息类型或者发送方式将会十分繁琐):例:继续添加发送手机消息的处理方式(这个时候代码结构就逐渐开始变得复杂):桥接模式实现: ==19、命令模式==命令模式UML结构图例(烤羊肉串)例(计算器——允许执行undo与redo) ==20、职责链模式==职责链模式UML结构图 ==21、中介者模式==结构样例类比中介者模式UML结构图 ==22、享元模式==享元模式UML结构图例(申请网站)例(五色棋) ==23、访问者模式==访问者模式UML结构图

1、简单工厂模式 例(计算器)

例(商场促销)

2、策略模式 策略模式UML结构图

例(商场促销)

环境角色:

class CashContext { private CashSuper cs; public CashContext(CashSuper csuper) { this.cs = csuper; } public double GetResult(double money) { return cs.acceptCash(money); } } 策略模式+简单工厂模式

3、装饰模式 装饰模式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() { } } 例(给人搭配不同的服饰)(装饰模式做法)

例(InputStream)

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

4、代理模式 代理模式UML结构图

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

·

5、工厂方法模式 简单工厂 VS 工厂方法(以计算器为例) 简单工厂UML结构图(以计算器为例)

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

工厂方法模式UML结构图

6、原型模式 原型模式UML结构图

img

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

7、外观(门面)模式 外观模式UML结构图

img

8、模板方法模式 例(登录界面实现)

img

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

img

9、建造者(生成器)模式 建造者模式UML结构图

img

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

img

10、观察者模式 观察者模式UML结构图

img

例(股票行情变动)

img

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

img

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

img

抽象工厂模式UML结构图

img

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

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

UML图:

img

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

12、状态模式 状态模式UML结构图

img

例(工作状态)

13、适配器模式 适配器模式UML结构图

14、备忘录模式 备忘录模式UML结构图

img

例(游戏进度备忘)

img

15、组合模式 组合模式UML结构图 16、迭代器模式 迭代器模式UML结构图 17、单例模式 单例模式UML结构图

18、桥接模式 例(不同品牌手机软件的安装) 按品牌分类:

img

按软件实现分类:

img

桥接模式实现:

img

桥接模式UML结构图

img

全部采用继承,不使用桥接模式的UML图(如果继续扩展消息类型或者发送方式将会十分繁琐): 例:继续添加发送手机消息的处理方式(这个时候代码结构就逐渐开始变得复杂): 桥接模式实现:

img

19、命令模式 命令模式UML结构图

img

例(烤羊肉串)

img

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

img

20、职责链模式 职责链模式UML结构图 21、中介者模式 结构样例类比

imgimg

中介者模式UML结构图

img

22、享元模式 享元模式UML结构图

img

例(申请网站)

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

UML图:

img

例(五色棋)

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

UML图:

img

23、访问者模式 访问者模式UML结构图


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有