设计模式
KingCruel
这个作者很懒,什么都没留下…
展开
-
设计模式中遵循的原则:单一职责、开发-封闭、依赖倒转
单一职责原则一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者抑制这个类完成其他职责的功能。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离,如果你能够想到多于一个动机去改变一个类,那么这个类就具有多个职责,这时就应该考虑类的职责分离。开发-封闭原则软件实体(类,模块)应该可以扩展,但是不可以原创 2012-09-10 08:10:11 · 614 阅读 · 0 评论 -
建造者模式(Builder Pattern)
概述 有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法确相对稳定。如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变?这就是要说的建造者模式。本文通过现实生活中的买KFC的例子,用图解的方原创 2012-09-10 08:12:12 · 663 阅读 · 0 评论 -
单件模式(Singleton Pattern)
概述 Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。这就提出了一个问题:如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?客户程序在调用某一个类时,它是不会考虑这个类是否只能有一个实例等问题的,所以,这应该是类设计者的责任,而不是类使用者的责任。 从另一个角度来说,Singleton模式其实也是一种职责型模式。因为我们创建了一个对象,这个对象扮原创 2012-09-10 08:11:34 · 548 阅读 · 0 评论 -
.NET与设计模式
第一部分:创建型模式1.单件模式(Single Pattern)2.抽象工厂模式(Abstract Factory)3.建造者模式(Builder Pattern)4.工厂方法(Factory Method)5.原型模式(Protype Pattern)第二部分:结构型模式6.适配器模式(Adapter Pattern)7.桥接模式(Bridge Pattern)原创 2012-09-10 08:09:35 · 507 阅读 · 0 评论 -
策略模式(Strategy Pattern)
一、策略模式(Strategy Pattern)定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换,策略模式让算法独立于使用它的客户而变化。二、在策略模式中包含如下几个角色Context(环境类):环境类是使用算法的角色,它在解决某个问题(即实现某个方法)时可以采用多种策略。在环境类中维持一个对抽象策略类的引用实例,用于定义所采用的策略。Strategy(抽象策略类):它原创 2012-09-16 12:27:20 · 573 阅读 · 0 评论 -
观察者模式(Oberver Pattern)
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。原创 2012-09-17 00:20:17 · 497 阅读 · 0 评论 -
职责链模式(Chain of Responsibility)
一、职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。(1)纯的职责链模式 一个纯的职责链模式要求一个具体处理者对象只能在两个行为中选择一个:要么承担全部责任,要么将责任推给下家,不允许出现某一个具体处理者对象在承担了一部分或全部责任后又将责任向下传递的情况。而且在原创 2012-09-15 09:31:14 · 663 阅读 · 0 评论 -
适配器模式(Adapter Pattern)
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。生活中的例子:1.在日常生活中我们经常碰见一些无法直接对接的现象,比如自来水管、竹筒、插座等等。这些东西都会由于两头没有一个标准,导致无法直接连接使用。自来水管从地底下通往各个住户家中,但是不可能几十万的住户用很细的水管吧,必须用很粗的水管进行送水。但是到原创 2012-09-10 08:13:34 · 718 阅读 · 0 评论