
Ruby 设计模式
Robin2Wu
这个作者很懒,什么都没留下…
展开
-
泡妞之模板方法模式
[quote]http://www.cnblogs.com/7in10/articles/842417.html[/quote][img]http://dl.iteye.com/upload/attachment/164296/b2ed42fe-e9e4-35bc-a3f6-ea37728e3136.jpg[/img][code="ruby"]class Template ...原创 2009-11-04 17:21:19 · 218 阅读 · 0 评论 -
建造者模式(Builder)
名字: 建造者模式(Builder)意图: [b]将一个复杂的构建与其表示相分离[/b], 得同样的构建过程可以创建不同的表示.动机: 软件系统中, 有时候面临着“一个复杂对象”的创建工作, 其通常由各个部分的子对象用一定的算法构成; 由于需求的变化, 这个复杂对象的各个部分经常面临剧烈变化, 但将其组合在一起的算法却相对稳定.[code="ruby"]class...原创 2010-01-12 21:24:07 · 134 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory)
名称: 抽象工厂模式(abstract factory)别名: Kit意图: 提供一个[b]创建一系列相关或相互依赖对象的接口[/b], 而无需指定它们具体的类.动机: 考虑一个支持多种视感(look-and-feel)标准的用户界面工具包. 不同的视感风格为诸如滚动条、窗口和按钮等用户界面"窗口组件"定义不同的外观和行为. 为保证视感风格标准间的可移植性...原创 2010-01-05 12:53:38 · 127 阅读 · 0 评论 -
适配器模式(Adapter)
名字: 适配器模式(Adapter)别名: 包装器(Wrapper)意图: [b]将一个类的接口转换成客户希望的另外一个接口[/b]. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.动机: 为了复用而设计的工具箱不能被复用, 原因仅仅是因为它的接口不匹配.[code="ruby"]class Connection def request...原创 2009-12-29 20:47:35 · 129 阅读 · 0 评论 -
代理模式(Proxy)
名字: 代理模式(Proxy)别名: 替身(surrogate) 意图: [b]为其他对象提供一种代理以控制对这个对象的访问[/b].动机: 按需创建; 替代对象.[code="ruby"]class Company def register raise "Abstract method" endendclass RealCompany <...2009-12-23 22:21:51 · 163 阅读 · 0 评论 -
装饰模式(Decorator)
名字: 命令模式(Decorator)别名: Wrapper意图: [b]动态地给一个对象添加一些额外的职责[/b]. 就增加功能来说, Decorator模式相比生成子类更为灵活.动机: 我们经常要给界面组件加一些特性; 用继承不灵活.[code="ruby"]class HtmlTag def render raise "Abstract method"...2009-12-23 21:50:04 · 119 阅读 · 0 评论 -
命令模式(Command)
名字: 命令模式(Command)别名: 动作(Action) 事务(Transaction) 意图: 将一个[b]请求封装为一个对象[/b], 从而使你可用不同的请求对[b]客户进行参数化[/b]; 对请求排队或记录请求日志, 以及支持可取消的操作.动机: 怎么做到开放扩展呢?[code="ruby"]class Program def initialize ...2009-12-08 21:05:47 · 99 阅读 · 0 评论 -
组合模式(Composite)
名字: 组合模式(Composite)别名: 部分-整体模式合成模式意图: 将对象组合成树形结构以表示"[b]部分-整体[/b]"的层次结构.Composite模式使得用户对[b]单个对象和组合对象的使用具有一致性[/b].[code="ruby"]class Tag attr_accessor :name def initialize(name)...2009-11-30 22:04:14 · 151 阅读 · 0 评论 -
观察者模式(Observer)
名字: 观察者模式(Observer) 别名: 别依赖(Dependents)、发布-订阅(Publish-Subscribe)意图: 定义对象间的一种一对多的依赖关系,当[b]一个对象的状态发生[/b]改变时, 所有[b]依赖于它的对象都将得到通知并自动更新[/b].动机: 将一个系统分割成一系列相互协作的类有一个常见的副作用,需要维护相关对象间的一致性.我们不希望为了维持一致性而使...2009-11-25 23:02:42 · 184 阅读 · 0 评论 -
模版方法,策略模式和状态模式之间的区别
[b]类图区别:[/b]模版方法(Template Method): [img]http://dl.iteye.com/upload/attachment/169855/3f40335c-9043-3cb3-b076-a8dde5cadb65.jpg[/img]策略模式(Strategy): [img]http://dl.iteye.com/upload/att...2009-11-18 15:15:57 · 167 阅读 · 0 评论 -
泡妞之策略模式
[quote]http://www.cnblogs.com/7in10/articles/587233.html[/quote][img]http://dl.iteye.com/upload/attachment/168007/905c876b-bef3-3824-9bd7-d451c8eb845c.jpg[/img][code="ruby"]class Environ...2009-11-14 00:17:28 · 225 阅读 · 0 评论 -
原型模式(Prototype)
名字: 原型模式(Prototype)意图: 用原型实例指定创建对象的种类, 并且通过[b]拷贝[/b]这些原型创建新的对象.动机: 替换较复杂的等级结构的工厂方法.[code="ruby"]class ScreenPrototype attr_accessor :width, :height def initialize(width, height) ...原创 2010-01-19 19:26:12 · 135 阅读 · 0 评论