设计模式
文章平均质量分 79
qinysong
这个作者很懒,什么都没留下…
展开
-
《GOF设计模式》结构型模式的理解与思考
在GOF《设计模式》中,对结构型设计模式进行了分析和七种具体模式的整理,通过学习、实践和思考之后,我发现似乎可以对结构型模式进行更深入的概括,下面把我的理解描述如下,希望各位同样对设计模式感兴趣的朋友批评指正。 结构型设计模式三大主题:统一、概括、分离。在Gof设计模式中,对设计模式的主要分类为:1)创建型、2)结构型、3)行为型。创建型设计模式抽象了对象的实例化过程;结构型设原创 2006-08-23 12:15:00 · 1378 阅读 · 0 评论 -
《重构-改善既有代码的设计》笔记1
之前写程序也总是不停的重构、重构,读完这本书之后才发现对于重构的理解以前是很肤浅的,很不成体系的。《重构》真是一本好书! 下面粗略地概括一下对重构的理解,也整理一下之前不是很清楚的概念。1、《重构》有一个很好的动机,也可以说是价值观,就是程序第一是写给人看的,而不是写给机器看的。 根据这一价值观,其他多种利益纷至沓来,比如当程序有了良好的可读性和可理解性,程序中隐藏的Bug便很容易浮出水面,开原创 2007-04-01 19:35:00 · 1291 阅读 · 0 评论 -
《GOF设计模式》学习笔记--职责链Chain Of Responsibility
一、官方描述:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 二、我的描述 1、一个简单例子:记得在上初中的时候,有一个老师非常的特别,他有一个与众不同的习惯,就是同学们的作业是边看边发,他看完一本,点评两句,然后就把本子扔给前排的同学,继续看下一本,前排的同学再把本子往原创 2006-08-26 12:33:00 · 2825 阅读 · 0 评论 -
几种结构型设计模式的对比
各种结构型设计模式由于或是采用类继承机制、或是采用对象组合方式实现,所以很多都具有一定的相似性,下面对比较相似的四组模式进行讨论 1、适配器Adapter VS 组合Composite相似点:都为客户提供了一致性。Adapter通过提供一致性使被适配组件Adaptee和目标组件Target兼容,从而使得这些组件可以一起使用;Composite通过提供一致性使组合对象原创 2006-08-18 03:34:00 · 1629 阅读 · 1 评论 -
《设计模式》学习笔记--外观Facade
1、官方描述: 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 2、实例讨论:我们可以通过电视机遥控器的作用来理解该模式的价值和作用,电视机的内部很复杂,包括频道调节和处理系统、图像色彩调节处理系统、声音调节系统等等,每个系统又包括多个类进行操作,如果把这些系统都暴露给用户使用,而不是通过遥控器进行封装原创 2006-08-16 19:42:00 · 1208 阅读 · 0 评论 -
《设计模式》学习笔记--装饰器Decorator
1、官方描述: 动态的给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活。 2、模式核心:一、即插即用性,即插即用性描述了该模式的动态性,在Decorator模式的结构中,被装饰组件只提供最基本的状态和功能,在使用中如果需要更多的职能,便可以通过增加或组合装饰器进行装配。这种即插即用性带来两个相互作用的效果:1)在状态或功原创 2006-08-15 19:08:00 · 3594 阅读 · 0 评论 -
《设计模式》学习笔记--代理Proxy
1、官方描述: 为其他对象提供一种代理以控制对这个对象的访问。 2、实例讨论:在进行应用系统开发的时候,往往会有一些信息在部署时才能够确定,并且可能会根据情况进行调整,如数据库配置信息等等,如果把这些信息直接硬编码到程序中,在需要调整时就不得不对系统进行重新编译和发布,这样不仅很麻烦,而且如果系统已经交付给用户使用,那么更是极其的不方便。怎样解决这些配置信息问题呢原创 2006-08-17 22:52:00 · 1379 阅读 · 5 评论 -
《设计模式》学习笔记--组合模式Composite
在总结这个模式的时候,发现很难找到一个系统低层的非常恰当的实例,能够完全表现出该模式的所有价值,所以这一节把主题作了一个改变。 1、核心意图: 将对象组合成树形结构以表示部分-整体的层次结构,Composite模式使用户对单个对象和组合对象的使用具有一致性。该模式的目标是抽象用户和组件之间的联系,使用户可以一致的使用各种类型的组件,包括原子组件和组合组件,从而避免在原创 2006-08-14 01:37:00 · 1141 阅读 · 0 评论 -
《设计模式》学习笔记--桥接Bridge
欢迎转载,请注明出处。1、核心意图:将抽象部分和实现部分分离,使它们都可以独立的变化。该模式的目标是通过把高层的抽象和底层的实现分开,分别构建自己的类层次结构,并通过实现部分的接口将两部分进行桥接,从而达到高层抽象和底层实现可以独立的方便扩展的目的。其核心是分离,和委托。 2、身边实例:Java语言的一个非常重要的特点是平台的无关性,对于一般的高级语言所编写的程序,如原创 2006-08-10 22:22:00 · 2110 阅读 · 0 评论 -
GOF设计模式-创建型模式理解与思索(二)(Factory Method分析)
Factory Method模式相对于其他创建型模式,应该是最简单、最容易实现的模式,该模式定义了一个用于创建对象的接口,而让子类决定实例化哪一个类,这样就将实例化的过程延迟到了子类,从而提高了对象创建的灵活性,在这里一个最核心的特征就是为子类提供了一个挂钩。但是,该模式有一个潜在的缺陷,就是客户可能仅仅为了创建一个特定ConcreteProduct对象而不得不创建Creator原创 2006-08-03 14:34:00 · 1338 阅读 · 0 评论 -
Factory Method属于类/对象模式的疑惑及解惑
在GOF《设计模式-可复用面向对象软件的基础》3.3节Factory Method的标题中(Factory Method工厂方法——对象创建型模式),将该模式的类型指定为“对象创建型模式”,在学习的过程中总感觉有些疑惑,因为在意识中我觉得应该属于“类创建型模式”才对。下面是对这一疑惑的陈述和最后解惑。 疑惑为什么我觉Factory Method是类创建型模式第一、类创建型模式和对象原创 2006-12-14 11:38:00 · 1206 阅读 · 2 评论 -
《设计模式》学习笔记--适配器Adapter
欢迎转载,请注明出处。1、核心意图: 将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作。该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。其核心是解决一致性的问题。 2、身边实例:在我们实际生活中也很容易看到这方面的例子,原创 2006-08-09 13:59:00 · 3734 阅读 · 2 评论 -
GOF设计模式-创建型模式理解与思索(三)(Prototype分析)
欢迎转载,请注明出处。核心意图: Prototype模式通过原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。其核心是采用注入的方式,隔离对象客户和对象之间的关系,对象客户只需要知道自己所需要的对象可以通过复制外界传给自己的原型就可以得到,而具体是什么特殊的类型不需费心。 模式分析: 在我们日常生活中,也经常会碰到这种Prototype模式原创 2006-08-07 02:17:00 · 1729 阅读 · 1 评论 -
GOF设计模式-创建型模式理解与思索(一)(Abstract Factory 和Builder)
最近又在翻看GOF的《设计模式-可复用面向对象软件的基础》一书,发现经典就是经典,每次都有新的体验和收获,所以这次把理解和心得写下来,以备学习和交流。 创建型模式抽象了实例化过程,他帮助一个系统独立于如何创建、组合和表示他的那些对象。在Gof 23种经典模式中,主要通过以下方式对实例化过程进行分离和抽象: 1、对象委托。即是将对象的创建委托给专门的工厂对象,这样对于工厂所原创 2006-08-02 11:48:00 · 4318 阅读 · 2 评论 -
《GOF设计模式》学习笔记--Command命令模式
官方描述将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 我的描述1、模式理解我觉得命令模式可以从以下几点进行理解:1)分离框架和应用逻辑在GOF《设计模式》动机部分,描述了用户界面框架中按钮和菜单这样的对象,这些对象执行操作以对用户请求进行响应,但是由于这些对象属于工具箱的一部分,所以在实际的被用原创 2006-08-29 22:17:00 · 2118 阅读 · 1 评论 -
《GOF设计模式》学习笔记—Mediator中介者
官方描述用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 我的理解1、Mediator中介者的引出在面向对象的设计中,我们通常尽量把对象细化,使其只负责或呈现单一的职责,这样在某些情况下,对于一个模块,可能就需要由很多对象构成,比如在《GOF设计模式》动机中所举示例,一个图形用户界面对话框由若原创 2006-09-03 00:07:00 · 1954 阅读 · 0 评论 -
《GOF设计模式》学习笔记—Iterator迭代器
官方描述提供一种方法顺序访问一个聚合对象中的各元素,而又无需暴露该聚合对象的内部表示。 我的理解1、价值所在:Iterator迭代器模式相对于其他模式显得对于要处理的问题更具体一些,它把一个聚合对象中元素访问和遍历操作从该聚合对象内部分离出去,从而提供了以下三方面的好处:1)简化聚合类型接口因为聚合对象不再需要直接对外提供访问和遍历自己内部元素的服务,所以简化了聚原创 2006-08-30 18:05:00 · 1459 阅读 · 0 评论 -
《重构-改善既有代码的设计》笔记2
一、重构的方向代码的坏味道Bad smells一章,真是一顿营养丰富的大餐。Duplicated Code是代码腐化的万恶之源,Long Method、Large Class、Long Parameter List这些几乎就是旧社会臭婆娘的裹脚布,Divergent Change、Shotgun Surgery、Feature Envy、Inappropriate Intimacy这些简直就是原创 2007-04-01 19:41:00 · 1283 阅读 · 0 评论