代码改变世界

设计模式之责任链模式(Chain of Responsibility)

2010-01-22 19:57 by key_sky, 214 阅读, 0 推荐, 收藏, 编辑
摘要:责任链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一个链,并沿着这条链传递该请求,直道有一个对象处理它为止 阅读全文

设计模式之命令模式(Command)

2010-01-22 19:51 by key_sky, 232 阅读, 0 推荐, 收藏, 编辑
摘要:命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。命令模式把请求一个操作的对象与指导怎么执行一个操作的对象分隔开。 阅读全文

设计模式之桥接模式(Bridge)

2010-01-22 19:48 by key_sky, 186 阅读, 0 推荐, 收藏, 编辑
摘要:桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。实现指的是抽象类和它的派生类用来实现自己的对象。也就是说实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。 阅读全文

设计模式之单例模式(Singleton)

2010-01-21 21:07 by key_sky, 180 阅读, 0 推荐, 收藏, 编辑
摘要:单例模式(Singleton):保证一个类仅有一个实例,并提欧诺个一个访问它的全局访问点。当一个全局变量使得一个对象被访问,但它不能防止实例化多个对象,最好的方法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法 阅读全文

设计模式之迭代器模式(Iterator)

2010-01-21 21:03 by key_sky, 183 阅读, 0 推荐, 收藏, 编辑
摘要:迭代器模式(Iterator):提供一种方法顺序访问一个聚合对象中各个元素,而不是暴露对象的内部表示。 阅读全文

设计模式之组合模式(Composite)

2010-01-21 20:58 by key_sky, 234 阅读, 0 推荐, 收藏, 编辑
摘要:组合模式(Composite):将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。让可以可以一致地使用组合结构和单个对象。 阅读全文

设计模式之备忘录模式(Memento)

2010-01-20 21:24 by key_sky, 232 阅读, 0 推荐, 收藏, 编辑
摘要:备忘录模式(Memento):在不破会封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。 阅读全文

设计模式之适配器模式(Adapter)

2010-01-20 21:19 by key_sky, 179 阅读, 0 推荐, 收藏, 编辑
摘要:适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作哪些类可以一起工作。 阅读全文

设计模式之状态模式(State)

2010-01-20 21:15 by key_sky, 212 阅读, 0 推荐, 收藏, 编辑
摘要:状态模式(State):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。主要解决当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 阅读全文

设计模式之抽象工厂模式(AbstractFactory)

2010-01-19 20:38 by key_sky, 171 阅读, 0 推荐, 收藏, 编辑
摘要:抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 阅读全文

设计模式之观察者模式(Observer)

2010-01-19 20:33 by key_sky, 226 阅读, 0 推荐, 收藏, 编辑
摘要:观察者模式(Observer):定义了一种一对多的依赖关系,让多个观察着对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。 阅读全文

设计模式之建造者模式(Builder)

2010-01-19 20:27 by key_sky, 203 阅读, 0 推荐, 收藏, 编辑
摘要:建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时使用的模式。 阅读全文

设计模式之外观模式(Facade)

2010-01-18 20:49 by key_sky, 245 阅读, 0 推荐, 收藏, 编辑
摘要:外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 阅读全文

设计模式之模板方法模式(TemplateMethod)

2010-01-18 20:44 by key_sky, 156 阅读, 0 推荐, 收藏, 编辑
摘要:模板方法模式(TemplateMethod):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 阅读全文

设计模式之原型模式(Prototype)

2010-01-18 20:39 by key_sky, 160 阅读, 0 推荐, 收藏, 编辑
摘要:原型模式(Prototype):用原型实例指定创建对象的总类,并且通过拷贝这些原型创建新的对象。 阅读全文

设计模式之工厂方法模式(FactoryMethod)

2010-01-18 13:47 by key_sky, 168 阅读, 0 推荐, 收藏, 编辑
摘要:工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法是一个类的实例化延迟到其子类。 阅读全文

设计模式之代理模式(Proxy)

2010-01-18 13:44 by key_sky, 282 阅读, 0 推荐, 收藏, 编辑
摘要:代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问.使用环境:1.远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样额可以隐藏一个对象存在于不同的地址空间的事实2.虚拟代理,根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。3.安全代理,用来控制真实对象访问时的权限。4.智能指引,是指当调用真实的对象时,代理处理另外一些事Subject.cs:代码Co... 阅读全文

设计模式之装饰模式(Decorator)

2010-01-15 22:27 by key_sky, 196 阅读, 0 推荐, 收藏, 编辑
摘要:装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。Component是定义了一个对象接口,可以给这些对象动态地添加职责,ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorat... 阅读全文

设计模式之策略模式(Strategy)

2010-01-15 22:22 by key_sky, 238 阅读, 0 推荐, 收藏, 编辑
摘要:面向对象的编程,并不是类越多越好,类的划分是为了封装,分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类.策略模式(Strategy):定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合.优点:Strategy... 阅读全文

设计模式之简单工厂模式(SimpleFactory)

2010-01-15 22:16 by key_sky, 205 阅读, 0 推荐, 收藏, 编辑
摘要:设计模式主要原则:单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破会。开放-封闭原则:软件实体类、模块、函数等等应该可以扩展,但是不可修改。对扩展是开放的(Openfor extensio),对于更改时封闭的(Clo... 阅读全文