设计模式
文章平均质量分 79
Csdbfans
我不知道我能不能做你要求我做的,但我会努力试着按你的要求完成;我也不知道我的潜力到底有多大,但我深知能力是伴随学习而提高;我同样不知我的未来到底能到达什么高度,但我知道我现在不去努力的话,未来只能口头上来瞎吹,永远把握不住它前进的方向。
--------------------------------
展开
-
设计模式之组合模式(Composite Pattern)
初学设计模式,今天看了下组合模式(Composite Pattern),写下学习笔记。组合模式,顾名思议,就是把各种单独的功能或方法组合起来使用,并对所有功能或方法的统一管理。举个例子,大家对吃都感兴趣,我比较喜欢烧烤,那就举个烧烤的例子,烧烤就是把要烤的东西(比如:鸡翅啊,羊排啊,玉米啊等等)放在火上,刷点油,撒点佐料,烤熟了就能吃了,但是每种食物的烤法又不一样,有的可能是干的要先刷点油,有的转载 2009-11-08 10:07:00 · 659 阅读 · 3 评论 -
简单工厂模式及实例
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的实例说明简单工厂及其优点。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 该模式中包含的角色及其职责 工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以转载 2010-05-03 23:06:00 · 934 阅读 · 0 评论 -
创建型模式---单件模式(Singleton Pattern)
创建型模式---单件模式(Singleton Pattern)动机(Motivation): 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。 如何绕过常规的构造器,提供一种机制来保证一个类只创建一个实例? 这应该是类设计者的责任,而不是类使用者的责任。结构图:意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 ------>GOF生活的例子:转载 2011-03-27 23:43:00 · 778 阅读 · 0 评论 -
抽象工厂(Abstract Factory)
<br />常规的对象创建方法:<br />//创建一个Road对象<br />Road road =new Road();<br /><br />new 的问题:<br /> 实现依赖,不能应对“具体实例化类型”的变化。<br />解决思路:<br /> 封装变化点-----哪里变化,封装哪里<br /> 潜台词: 如果没有变化,当然不需要额外的封装!<br /><br />工厂模式的缘起<br /> 变化点在“对象创建”,因此就封装“对象创建”<b转载 2011-04-01 20:11:00 · 697 阅读 · 0 评论 -
原型模式(Prototype)
依赖关系倒置: <br /><br /> <br /><br />动机(Motivate):<br /> 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着<br />剧烈的变化,但是它们却拥有比较稳定一致的接口。<br /> 如何应对这种变化?如何向“客户程序(使用这些对象的程序)"隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序”不随着需求改变而改变?<br />意图(Intent):<br /> 用原型实例指转载 2011-05-21 23:42:00 · 863 阅读 · 0 评论 -
适配器模式(Adapter Pattern)
适配(转换)的概念无处不在......<br /> 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。<br /> 例如:二转换为三箱插头,将高电压转换为低电压等。<br /> <br /> 动机(Motivate):<br /> 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。<br /> 那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好转载 2011-05-23 22:26:00 · 872 阅读 · 0 评论 -
建造者模式(Builder)
<br />Builder模式的缘起:<br /> 假设创建游戏中的一个房屋House设施,该房屋的构建由几部分组成,且各个部分富于变化。如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正.....<br /><br /><br />动机(Motivation):<br /> 在软件系统中,有时候面临一个"复杂对象"的创建工作,其通常由各个部分的子对象用一定算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合到一起的算法却相对稳定。<br转载 2011-04-08 00:10:00 · 723 阅读 · 0 评论 -
工厂方法模式(Factory Method)
耦合关系:动机(Motivation): 在软件系统中,由于需求的变化,"这个对象的具体实现"经常面临着剧烈的变化,但它却有比较稳定的接口。 如何应对这种变化呢?提供一种封装机制来隔离出"这个易变对象"的变化,从而保持系统中"其它依赖的对象"不随需求的变化而变化。意图(Intent): 定义一个用户创建对象的接口,让子类决定实例哪一个类。Factory Method使一个类的实例化延迟到子类。转载 2011-04-16 09:02:00 · 753 阅读 · 0 评论 -
桥接模式(Bridge Pattern)
动机(Motivate): 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?意图(Intent): 将抽象部分与实现部分分离,使它们都可以独立的变化。 ------《设计模转载 2011-06-19 23:55:00 · 1190 阅读 · 0 评论