摘要: 中介者模式 数个对象之间的通信全部委托一个中介者完成。适用于对象之间互相引用,关系错综复杂的情况。 什么情况下需要使用中介者模式 对象较多,且对象间会相互引用,当一个对象的某个状态改变时,得通知其他对象。形象点的例子,比如说团队游戏,每个对象之间都有关系,不是队友就是敌人,当一个对象死亡就得通知其他 阅读全文
posted @ 2017-02-07 17:20 出世Sunny 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 书里的订单的例子 假设我们负责一个售卖手机的电商网站,经过分别交纳500元定金和200元定金的两轮预定(订单已在此时生成),现在已经到了正式购 阅读全文
posted @ 2017-02-07 16:11 出世Sunny 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 享元模式 享元(flyweight)模式是一种用于性能优化的模式,“fly”在这里是苍蝇的意思,意为蝇量级。享元模式的核心是运用共享技术来有效支持大量细粒度的对象。 享元模式的核心思想就是共享对象,借此达到节省性能的目的。比如说有100套不同的衣服需要拍照,正常的想法都是请一个模特让他换100套衣服 阅读全文
posted @ 2017-02-07 15:11 出世Sunny 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式: 由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法。 泡咖啡和泡茶的例子 观察两段代码,发现其实他们是大同 阅读全文
posted @ 2017-02-07 11:32 出世Sunny 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 组合模式:一些子对象组成一个父对象,子对象本身也可能是由一些孙对象组成。 有点类似树形结构的意思,这里举一个包含命令模式的例子 感觉上有点像俄罗斯套娃,首先定义了一个接口对象,大家都是这个接口对象,只不过一层套一层,不断调用。 执行过程其实就是深度优先搜索。 一些值得注意的地方 组合模式不是父子关系 阅读全文
posted @ 2017-02-07 11:09 出世Sunny 阅读(173) 评论(0) 推荐(0) 编辑