10 2019 档案

摘要:将一个系统分割成多个对象可以增加复用性,但是对象之间相互连接的激增又会降低其可复用性。 大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的的整体。所以,对系统的行为进行任何较大的改动就十分困难。 中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各个不需要显式地 阅读全文
posted @ 2019-10-31 14:43 水墨晨诗 阅读(191) 评论(0) 推荐(0) 编辑
摘要:状态模式(State)主要是解决当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。(如果状态判断很简单,就没必要使用状态模式了。) 将特定的状态相关的行为都放入到一个对象中,由于所有与状态相关的代码都存在于某个Concre 阅读全文
posted @ 2019-10-30 14:00 水墨晨诗 阅读(380) 评论(0) 推荐(0) 编辑
摘要:观察者模式:解决一个对象的某个事件在发生后,触发一系列其他对象的动作。并且不希望对象之间存在紧密的依赖关系。 static void Main(string[] args) { Chicken ck = new Chicken(); ck.Woo();//没使用观察者模式的方法。 } public 阅读全文
posted @ 2019-10-30 11:38 水墨晨诗 阅读(162) 评论(0) 推荐(0) 编辑
摘要:在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪一个,我们只需在程序运行时指定具体的接收者即可,此时可以使用命令模式,来进行设计。命令模式使得请求发送者与请求者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命令模式中,会将一个请求封 阅读全文
posted @ 2019-10-29 22:17 水墨晨诗 阅读(119) 评论(0) 推荐(0) 编辑
摘要:命令模式:将一个请求封装成为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式的优点: 1、能够较为容易的设计一个命令队列。 2、在需要的情况下,可以较为容易的将命令记入日志。 3、允许接受请求的一方决定是否要否决请求。 4、可以容易地实现对 阅读全文
posted @ 2019-10-15 09:46 水墨晨诗 阅读(103) 评论(0) 推荐(0) 编辑
摘要:1、外观模式对外屏蔽了子系统的细节,因此外观模式降低了客户端对子系统使用的复杂性。 2、外观模式对客户端与子系统的耦合关系,让子系统内部的模块更容易维护和拓展。 3、通过合理的使用外观模式,可以帮我们更好的划分访问的层次。 4、当系统需要进行分层设计时,可以考虑使用Facade模式。 5、在维护一个 阅读全文
posted @ 2019-10-06 11:33 水墨晨诗 阅读(358) 评论(1) 推荐(0) 编辑
摘要:在模板方法模式(Template Method)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法 阅读全文
posted @ 2019-10-05 17:02 水墨晨诗 阅读(125) 评论(0) 推荐(0) 编辑
摘要:在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的 阅读全文
posted @ 2019-10-05 16:57 水墨晨诗 阅读(211) 评论(0) 推荐(0) 编辑
摘要:享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 意图:运用共享技术有效地支持大量细粒度的对象。 主要解决:在有大量对象时,有可能会造成内存溢出,我们 阅读全文
posted @ 2019-10-02 21:42 水墨晨诗 阅读(127) 评论(0) 推荐(0) 编辑