
软件架构
sq2108
这个作者很懒,什么都没留下…
展开
-
观察者模式
Observer观察者模式 作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己 UML图: Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以转载 2014-11-18 14:50:12 · 372 阅读 · 0 评论 -
内聚和耦合
软件设计的关键品质是内聚和耦合。这不是什么新奇的“面向对象”gainia转载 2014-11-13 10:42:20 · 433 阅读 · 0 评论 -
代理模式
作用: 为其他对象提供一种代理以控制对这个对象的访问。 UML结构图: 抽象基类: 1)Subject:定义了Proxy和RealSubject的公有接口,这样就可以在任何需要使用到RealSubject的地方都使用Proxy. 解析: Proxy其实是基于这样一种时常使用到的技术-某个对象直到它真正被使用到的时候才被初始化,在没有使用到的时候就暂时用Proxy作一个占转载 2014-11-19 10:57:24 · 328 阅读 · 0 评论 -
组合模式
Composite组合模式 作用:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 UML图如下: 在Component中声明所有用来管理子对象的方法,其中包括Add、Remove等,这样实现Component接口的所有子类都具备了Add和Remove。 这样做的好处就是叶节点和枝节点对于外界没有区别,它们转载 2014-11-19 14:37:19 · 363 阅读 · 0 评论 -
迭代器模式
概述: 在现在的电视机中,我们使用[后一个]和[前一个]按钮可以很方便的换台,当按下[后一个]按钮时,将切换到下一个预置的频道。想象一下在陌生的城市中的旅店中看电视。当改变频道时,重要的不是几频道,而是节目内容。如果对一个频道的节目不感兴趣,那么可以换下一个频道,而不需要知道它是几频道。 这个其实就是我们迭代器模式的精髓:提供一种方法顺序访问一个聚合对象转载 2014-11-19 14:24:08 · 378 阅读 · 0 评论 -
适配器模式
Adapter适配器模式 作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 分为类适配器模式和对象适配器模式。 系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。转载 2014-11-18 15:19:16 · 286 阅读 · 0 评论 -
策略模式
策略模式和 Template 模式要解决的问题是相同(类似)的,都是为了给业务逻辑(算法)具体实现和抽象接口之间的解耦。策略模式将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现。State 模式也有类似的功能,他们之间的区别将在讨论中给出。 模式选择 策略模式典型的结构图为:转载 2014-11-20 10:11:17 · 382 阅读 · 0 评论 -
状态模式
State状态模式 作用:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 UML图如下: State类,抽象状态类,定义一个接口以封装与Context的一个特定状态相关的行为。 ConcreteState类,具体状态,每一个子类实现一个与Context的一个状态相关的行为。 Context类,维护一个ConcreteState子类的实例,这个实例转载 2014-11-20 11:05:49 · 388 阅读 · 0 评论