我们一起来读书吧 关注:154贴子:2,883
  • 0回复贴,共1

《设计模式》第四章(5-8节)有感

只看楼主收藏回复

在第四章中将具体介绍结构型设计模式,以及其优缺点、适用场景。
在结构型模式中又可以分为类结构型模式、对象结构型模式。
类结构型模式关心的是类之间的组合,一般只存在继承和实现关系。
对象结构型模式关心的是类和对象之间的关系,一般是通过关联关系使得一个类中包含另一个类的实例对象,然后在这个类中调用这个对象的相关方法。
Facade(外观)模式
外观模式会对系统提供一个统一的访问接口,客户端在使用系统时可以不直接操作系统,而是访问提供的统一接口,为客户端使用系统中提供的功能提供方便。通俗一点儿就是说外外观模式是系统功能的整合提供商。

优点:(1)客户端不需要知道系统中功能的具体实现、使用方式,只需要了解提供的统一接口是如何使用即可。
缺点:(1)系统中功能的修改要同步修改访问接口
FlyWeight(享元)模式
当我们在一个系统中需要使用大量对象,但是这些对象可以重用时,我们可以考虑使用享元模式来减少对象的创建。
在享元模式的结构中享元工厂是核心类,其中提供了存储对象、复用对象、回收对象的能力。

优点:(1)减少大量对象的创建、可降低系统内存
缺点:(2)提高了系统复杂度,需要区分共享的对象中哪些属性是共用的,哪些是变化的
Proxy(代理)模式
代理模式为其他对象提供了一种代理访问特定对象的方式。当一个对象的创建开销特别大,而且只需要在特定使用时才需要创建时,我们可以使用代理模式,通过提供一个持有特定对象引用的代理类,客户端可以操作代理类,代理类中确定何时初始化或者删除对象。
从结构图中可以看出代理类和被代理类实现了相同的接口,这就使得客户端可以像使用真正的对象一样使用代理类,代理类内部在确定如何访问真正的对象。

优点:在客户端和目标对象之间增加了中介代理类,特高扩展性、降低系统耦合
缺点:额外增加代理类,提高代码复杂度
在实际项目中其实用到的很多缓存池的设计就是享元模式的一种体现。


IP属地:北京1楼2024-03-02 15:22回复