结构型设计模式
2021-06-17 10:01:41 0 举报
结构设计模式
作者其他创作
大纲/内容
RealSubject
+Request
SubSystemThree
+MethodThree()
客户所期待的接口,可以是具体或者抽象的类,也可以是接口
小米手机通讯录
+ OperationImp()
RealSubject类,定义Proxy所代表的真是实体
- flyweights
手机软件
游戏
ConcreteFlyweight
+ Operation(in extrinsicstate : int)
华为手机游戏
Client
小米手机游戏
组合模式
Decorator
+Operation()
ConcreteImplementorB
通过包装Adaptee对象,把源接口转换成目标接口
具体实现
手机品牌
+ Operation()
代理模式
SubSystem Classes 子系统类集合实现子系统的功能,处理Facade对象指派的任务。注意子类中没有Facade的任何信息,即没有对Facade对象的引用
通讯录
指那些不需要共享的Flyweight子类。因为Flyweight接口共享成为可能,但它并不强制共享
Subject
+Request()
ConcreteDecoratorA
-addedState:string
装饰模式
被提炼的抽象
SubSystemOne
+MethodOne()
Adapter
在组合中表示叶节点对象,叶节点没有子节点
Component
+Add(in c:Component)+Remove(in c:Component)+Display(in depth:int)
Proxy
RefinedAbstraction
Decorator,装饰抽象类继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的
Target
Flyweight
桥接模式
Proxy类,保存一个引用,使得代理可以访问实体,并实现Subject接口,这样代理就可以用来替代实体
FlyweightFactory
+ GetFlyweight(in key : int):Flyweight
-component
门面/外观模式
Composite
实现
一个享元工厂,用来创建并管理Flyweight对象。它主要是用来确保合理地共享Flyweight,当用户请求一个Flyweight时,FlyweightFactory对象提供一个已创建的实例或者创建一个(如果不存在的话)
组合中的对象声明接口,在适当情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component的子部件
抽象
ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责
ConcreteImplementorA
需要适配的类
华为手机
Adaptee
+SpecificRequest()
UnsharedConcreteFlyweight
Subject类,定义了RealSubject和Proxy的公用接口,这样就在任何使用RealSubject的地方可以使用Proxy
- realSubject
Facade外观类知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象
Component是定义一个对象接口,可以给这些对象动态地添加职责
享元模式
SubSystemTwo
+MethodTwo()
Implementor
小米手机
ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能
适配器模式
Leaf
+Display(in depth:int)
继承Flyweight超类或实现Flyweight接口,并为内部状态增加存储空间
-adaptee
ConcreteComponent
所有具体享元类的超类或接口,通过这个接口,Flyweight可以接受并作用于外部状态
SubSystemFour
+MethodFour()
Facade
+MethodA()+MethodB()
SubSystem Classes
-target
Abstraction
定义有枝节点行为,用来储存子部件,在Component接口中实现与子部件有关的操作,比如增加Add和删除Remove
ConcreteDecoratorB
+Operation()-AddedBehavior()
0 条评论
下一页