随笔分类 -  设计模式

摘要:示例代码来自《深入浅出设计模式》和《大话设计模式》概述简单工厂模式又被称为静态工厂模式,属于类的创建型模式。其实质是由一个工厂类根据传入的参量,动态决定应该创建出哪一个产品类的实例。意图专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。UML图1 简单工厂模式的UML图参与者这... 阅读全文
posted @ 2015-04-06 16:46 hystar 阅读(595) 评论(0) 推荐(0) 编辑
摘要:示例代码来自DoFactory。概述当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式。意图表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。UML图1 Visitor模式UML图参与者这个模式涉及的类或对象:Visito... 阅读全文
posted @ 2015-03-15 16:10 hystar 阅读(451) 评论(0) 推荐(1) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述变化一直以来都是软件设计的永恒话题,在XP编程中提倡拥抱变化,积极应对。如何更好的去抓住变化点,应对变化?如何更好的提高代码... 阅读全文
posted @ 2015-02-17 17:04 hystar 阅读(456) 评论(0) 推荐(0) 编辑
摘要:示例代码来自DoFactory。概述策略模式通过将实现相同功能的不同方法封装起来,使调用者可以方便的在需要的方法之间做出选择。意图定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。UML图1 策略模式的UML图参与者这个模式涉及的类或对象:St... 阅读全文
posted @ 2015-02-11 16:47 hystar 阅读(487) 评论(0) 推荐(0) 编辑
摘要:示例代码来自DoFactory。概述状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然如果这个状态判断很简单,那就没必要用"状态模式"了。意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似... 阅读全文
posted @ 2015-01-18 15:58 hystar 阅读(244) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系",即一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对... 阅读全文
posted @ 2014-12-26 15:01 hystar 阅读(315) 评论(0) 推荐(0) 编辑
摘要:示例代码来自DoFactory。概述当你需要让对象返回之前的状态时,就使用备忘录模式。意图在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。UML图1 备忘录模式的UML图参与者这个模式涉及的类或对象:Memento存储Origin... 阅读全文
posted @ 2014-12-12 14:41 hystar 阅读(238) 评论(0) 推荐(0) 编辑
摘要:示例代码来自DoFactory。概述中介者模式出现的背景是,尽管将一个系统分割成许多对象通常可以增加其复用性,但是对象间相互连接的激增又会降低其可复用性。大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的行为进行任何较大的改动就十分困难。通过前面对设... 阅读全文
posted @ 2014-11-09 14:21 hystar 阅读(362) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在面向对象的软件设计中,我们经常会遇到一类集合对象,这类集合对象的内部结构可能有着各种各样的实现,但是归结起来,无非有两点是... 阅读全文
posted @ 2014-10-22 17:32 hystar 阅读(234) 评论(0) 推荐(0) 编辑
摘要:部分示例代码来自DoFactory。概述如果一个特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。意图给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句... 阅读全文
posted @ 2014-10-11 14:27 hystar 阅读(209) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,"行为请求者"与"行为实现者"通常呈现一种"紧耦合"。但在某些场合,比如要对行为进行"记录、撤销/重做、事务"... 阅读全文
posted @ 2014-09-09 13:50 hystar 阅读(212) 评论(0) 推荐(0) 编辑
摘要:示例代码来自DoFactory。概述使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。意图避免请求的发送者和接收者之间的耦合关系,并让请求有机会得到处理。UML图1 职责链模式UML图参与者这个模式涉及的类... 阅读全文
posted @ 2014-08-08 12:45 hystar 阅读(258) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要的... 阅读全文
posted @ 2014-08-01 11:44 hystar 阅读(237) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述面向对象的思想很好地解决了抽象性的问题,一般也不会出现性能上的问题。但是在某些情况下,对象的数量可能会太多,从而导致了运行时... 阅读全文
posted @ 2014-07-17 11:16 hystar 阅读(165) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程... 阅读全文
posted @ 2014-06-26 09:29 hystar 阅读(295) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子... 阅读全文
posted @ 2014-06-01 14:15 hystar 阅读(206) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样... 阅读全文
posted @ 2014-05-05 11:19 hystar 阅读(273) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种"多维度的变化"?如何利用面向对象的技术来... 阅读全文
posted @ 2014-04-27 17:13 hystar 阅读(261) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,由于应用环境的变化,常常需要将"一些现存的对象"放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足... 阅读全文
posted @ 2014-04-06 16:18 hystar 阅读(288) 评论(0) 推荐(0) 编辑
摘要:本文摘取自TerryLee(李会军)老师的设计模式系列文章,版权归TerryLee,仅供个人学习参考。转载请标明原作者TerryLee。部分示例代码来自DoFactory。概述在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的... 阅读全文
posted @ 2014-03-21 15:12 hystar 阅读(265) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示