
设计模式
v1v1wang
这个作者很懒,什么都没留下…
展开
-
对象创建模式—Factory Method
1,意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到了子类。2,适用性 1>当一个类不知道他所必须创建的对象的类的时候。 2>当一个类希望由它的子类来指定它所创建的对象的时候 3>当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候原创 2010-05-29 18:55:00 · 490 阅读 · 0 评论 -
面向对象设计的基本原则!
正如牛顿三大定律在经典力学中的位置一样,“开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现转载 2011-09-16 15:05:09 · 647 阅读 · 0 评论 -
《java与模式》 第一章: 模式的简史和形而上学
模式是什么<br />人们在自己的环境中不断的发现问题和寻找解决问题的方案的时候,会发现有一些问题的解决方案不断地变换面孔重复出现, 但这些不同的面孔后面有着相同的本质,即模式软件模式的简史<br />关键词: Gang of Four(gof), Smalltalk, Alexandar模式的起源<br />建筑学模式的要素<br />模式的介绍(名字, 别名, 摘要 和 用意)<br />模式的结构(UML, 源代码,模式中的角色, 各角色的协同工作)<br />模式的长处与短处<br />模式的使用环原创 2011-02-10 10:58:00 · 634 阅读 · 0 评论 -
结构模式: template 模板模式
<br />转载 2010-06-10 22:28:00 · 596 阅读 · 0 评论 -
SOLID原则
转自:http://www.jdon.com/jivejdon/thread/38090由 Robert Martin提出的S.O.L.I.D 原则,用来更好编写面向对象程序,更灵活应对变化。<br /><br />S - Single Responsibility Principle 单一职责,简称SRP<br />这个我前面几篇文章刚刚写:对象的责任与职责<br />如何从职责和协作中发现丰富对象?<br /><br />比如:报表的内容和报表的格式都会变化改变,但是这两种变化的性质不同,一个是实质内在转载 2010-06-11 14:28:00 · 606 阅读 · 0 评论 -
行为模式:----剩下
Mediator中介者模式<br />1,尽管一个系统分割很多对象可以增加其利用性,但是对象之间的连接的激增又会降低其复用性。大量的连接使得一个对象不可能在没有其他对象的支持下,系统表现为一个不可分割的整体,所以对系统的进行任何较大的改动就十分困难了!<br />2,“迪米特发则”,如果两个类不必彼此之间直接通信,那么这两个类不应当发生直接的相互作用,如果一个类要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。例“联合国”来调停各个国家。<br />3,动机:在软件构建的过程中,经常会出现多个对象转载 2010-06-11 00:38:00 · 447 阅读 · 0 评论 -
结构模式:Proxy代理模式
<br />转载 2010-06-09 23:22:00 · 481 阅读 · 0 评论 -
结构模式:FlyWeight享元模式
<br />转载 2010-06-09 23:00:00 · 493 阅读 · 0 评论 -
结构模式:Facade外观模式
<br />转载 2010-06-09 22:43:00 · 458 阅读 · 0 评论 -
结构模式:decorate装饰模式
<br />转载 2010-06-09 22:31:00 · 533 阅读 · 0 评论 -
结构模式:Composite模式
<br />转载 2010-06-09 22:06:00 · 424 阅读 · 0 评论 -
结构模式:Bridge桥接模式
<br /><br />转载 2010-06-09 07:40:00 · 465 阅读 · 0 评论 -
结构模式:Adapter适配器模式
前言<br /> 适配,即是在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。动机<br /> 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。<br /> 如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 意图<br /> 将一个类的接口转换成客户希望的另一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。<转载 2010-06-09 00:07:00 · 481 阅读 · 0 评论 -
创建模式:Prototype模式
前言<br />动机<br /> 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。<br /> 如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需求改变而改变。代码<br />public class GameSystem { public static void Run(){ NormalActor转载 2010-06-08 23:19:00 · 469 阅读 · 0 评论 -
创建模式:Builder模式
前言 <br /> —假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化。<br /> —如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正……动机<br /> —在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定!<br /> —如何应对这种变化?如何提供一种“封装机制”来了隔离出转载 2010-06-08 22:09:00 · 605 阅读 · 1 评论 -
创建模式:Factory Method工厂模式
前言<br /> 从耦合关系谈起<br /> 耦合关系直接决定着软件面对变化时的行为<br /> —模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改。、<br /> —模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变<br /> 变化快的东西不能够影响变化快的东西!动机<br /> 在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。<br />转载 2010-06-08 00:31:00 · 453 阅读 · 0 评论 -
创建模式:Abstract Factory 抽象工厂模式
前言 创建型模式主要是解决new的问题 常规的对象创建方法: //创建一个Road对象 Road road = new Road(); new的问题: ---实现依赖,不能应对“具体实例化类型”的变化 解决思路: --封闭变化点——哪里变化,封闭哪里。 --潜台词:如果没有变化,当然不需要额外的封装。工厂模式的缘起 1,变化点在“对象创建”,因此就封装“对象创建”。 2,面向接口编程——依赖接口,而非依赖实现 3,最简单的解决方法 class R转载 2010-06-07 22:56:00 · 472 阅读 · 0 评论 -
C#面向对象设计模式纵横谈
设计模式描述了软件设计过程中某一类觉问题的一般性的解决方案。面向对象设计模式描述了面向对象设计过程中,特定场景下、类与相互通信的对象之间常见的组织关系。历史性著作《设计模式:可利用面向对象软件的基础》一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的地位。该书四位作者被人们并称为Gang of Four(GoF),“四人组”,该书描述的23种经典设计模式又被人们称为GoF23种设计模式。由于《设计模式:可利用面向对象软件的基础》一书确定了设计模式的地位,人们通常所说的设计模式隐含地表示“面向对原创 2010-06-07 07:51:00 · 666 阅读 · 0 评论 -
敏捷开发中编写高质量Java代码(转)
转自: http://hbluojiahui.blog.163.com/blog/static/3106476720106411019928/?fromdm&fromSearch&isFromSearchEngine=yes 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的代码质量。 Java项目开发过程中,由于开发人员原创 2011-11-14 18:18:22 · 791 阅读 · 0 评论