随笔分类 -  设计模式

摘要:本节主要内容:1、观察者模式意图;2、观察者模式UML图描述;3、举例说明;一、观察者模式意图:定义了一种一对多得依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。Define a one-to-many dependency between objects so that one object changes state,all its dependents are notified and updated automatically.二、UML描述三、举例说明:猫叫,主人醒,老鼠跑Observer代码:View C 阅读全文
posted @ 2011-11-30 10:09 走过留痕 阅读(1105) 评论(1) 推荐(0)
摘要:本节的主要内容:1.简单工厂模式的意图;2.UML图描述;3示例代码一、简单工厂模式意图:根据提供的数据类型。选择一个类进行实例化。二、UML图描述:三、代码示例: 举例说明:工作中薪资的计算方式:程序员=底薪+ 绩效;销售员=底薪+提成;助理=底薪+平均奖金;Staff类代码:View Code 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace y.SimpleFactoryExample 7 { 8 public ... 阅读全文
posted @ 2011-11-25 16:21 走过留痕 阅读(605) 评论(0) 推荐(0)
摘要:本节主要内容:1.外观模式的意图;2.UML图;3.应用举例一、外观模式意图:为子系统中的一组接口提供一个一致的接口。这个接口定义了一个高层接口,这个接口使得这一子系统更加容易使用Provide a unified interface to a set of interface in a subsystem.Facade defines a higher-lever interface that make the subsystem easier to use.二、UML图原型如左图,使用外观模式之后如右图。三、代码示例:应用举例:写代码中常遇见的情景:一个系统的一般的三步走:需求分析形成文档 阅读全文
posted @ 2011-11-24 17:18 走过留痕 阅读(984) 评论(0) 推荐(1)
摘要:本节主要内容:面向对象的五个基本原则一、单一职责原则(Single-Responsibility Principle):就一个类而言,应该仅有一个引起它变化的原因。 例如:写一个WinForm应用程序,需要将数据库的操作、文件的操作、算法的运用等,不需要将这些都写在Form这样的类中。应该将它们各自分开,应对将来的变化。或许你在写另外一个From类的时候,也需要用到文件操作,那样你就可以复用文件操作的类了,不用粘贴复制代码了。二、开放封闭原则(Open-Closed Principle):是说软件实体(类、模块、函数等等)应该可以扩展的,但是不可修改。 例如:一个公司成立之初,只有技术部员工。 阅读全文
posted @ 2011-11-24 11:50 走过留痕 阅读(3859) 评论(0) 推荐(0)
摘要:本文主要包括四部分:1、状态模式的基本定义;2、适用场景;3、类结构图;4、代码示例一、定义State:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类二、适用场景:1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。2.一个操作中含有庞大的分支结构,并且这些分支决定于对象的状态。三、类结构图:四、示例一个人考试成绩单,不同成绩的不同表现。五、代码创建学生对象:View Code 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using Syste 阅读全文
posted @ 2011-06-26 15:04 走过留痕 阅读(346) 评论(0) 推荐(0)
摘要:本文主要分为三部分:1、组合模式的基本定义;2、组合模式的类图结构;3、代码示例一、定义Composite:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。二、类图结构三、代码示例例子:一个项目包含多个文件夹、类、接口等,而一个文件夹也同样可以包含多个文件夹、类、接口。代码:项目抽象类:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace y.CompositePattern{ public abs 阅读全文
posted @ 2011-06-26 07:53 走过留痕 阅读(416) 评论(0) 推荐(0)
摘要:本文的主要内容分两部分:1、23个设计模式的定义;2、设计模式的基本分类一.23个设计模式的名字和意图1.Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2.Adapter:将一个类的接口装换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。3.Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。4.Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。5.Chain of Responsibility:为解除请求的发送者和接收者之间耦合 阅读全文
posted @ 2011-06-19 16:34 走过留痕 阅读(286) 评论(0) 推荐(0)