结构型模式思维导图:
组合模式(Composite)
是什么?
将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。现在举一个典型例子:组合模式能实现的功能就像word里的文字,不管是对单个字还是整段字的处理,都是一样的。
结构图?
使用场景?
需求中是体现部分与整体层次的结构时,且用户希望能忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时
好处?
①高层模块调用简单②节点自由添加
透明方式与安全方式?
透明方式是在Component中声明所有用来管理子对象的方法,其中包括Add和Remove等;
安全方式是在Component接口中不去声明Add和Remove方法
桥接模式(Bridge)
是什么?
将抽象部分与它的实现部分分离,使它们都可以独立地变化。这是用来解决“多维度的变化”问题。
结构图?
使用场景?
一个构件有多于一个的抽象化角色和实现化角色,系统需要它们之间进行动态耦合。
与装饰模式的异同点?
异:
装饰模式把子类中比基类中多出来的部分放到单独的类里面,以适应新功能的增加
桥接模式则是把原来的基类的实现化细节抽象出来,再构造到一个实现化的结构中,然后再把原来的基类改造成一个抽象化的等级结构。
同:都是为了减少子类的数目,避免出现复杂的继承关系
享元模式(Flyweight)
是什么?
如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一个使用创建新的对象。
结构图?
使用场景?
当一个应用程序使用了大量的对象,而这些对象造成了很大的存储开销的时候
内部状态与外部状态?
内部状态指在享元对象内部且不会随环境改变而改变的共享部分。
当然,随环境改变而改变,不可以共享的状态就是外部状态了。
小结
细心的读者能看出来小编在这篇文章的结构图模块添加的均是具体实例的结构图,这也算是小编学习方法的一种进步吧,所谓“抽象不如具体”,那就来点实际的。加油。