23种设计模式UML图
目录23种设计模式UML图1、简单工厂模式例(计算器)例(商场促销)2、策略模式策略模式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结构图
例(订单处理系统(深复制)——Java)
7、外观(门面)模式
外观模式UML结构图
8、模板方法模式
例(登录界面实现)
例(通过JDBC方式连接数据库)
9、建造者(生成器)模式
建造者模式UML结构图
例(文件备份)(文件头、主体、结尾):
10、观察者模式
观察者模式UML结构图
例(股票行情变动)
11、抽象工厂模式
例(工厂方法模式下的数据库访问UML图)
例(抽象工厂模式下的数据库访问UML图)
抽象工厂模式UML结构图
利用简单工厂改进抽象工厂(以选择数据库为例)
去除IFactory、SqlserverFactory和AccessFactory三个工厂类,取而代之的是DataAccess类,用一个简单工厂模式来实现:
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结构图
例(申请网站)
(一组网站的结构是类似的,我们看成是可共享的部分(内部状态),而每个网站的用户是不同的,不可共享的,是外部状态):
UML图:
例(五色棋)
(棋子的颜色是类似的,只有固定的几种,可以看成是可共享的(内部状态),但是棋子的位置是不确定的,是不可共享的(外部状态))
UML图: