随笔分类 -  设计模式

摘要:User+strA:string+strB:string-sstrA:string#sstrB:string+GetResult():int表示:类。其中第一个行是类的名称,第二行是类中字段和属性,第三行类中的方法。 “+”表示public; “-” 表示Private;“#”表示Protected “:”后面表示返回值的类型User+strA:string+GetResult()表示:抽象类。类的名称如果是斜体,则表示抽象类。>IUser+GetResult():int表示:接口。接口还有一种表示方法:棒棒糖表示法。即:此时只有接口名称,接口中的方法体现在其实现类中!关系:1、... 阅读全文
posted @ 2013-10-08 17:51 武沛齐 阅读(869) 评论(0) 推荐(1) 编辑
摘要:建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(过程是稳定的)。从建造者模式的定义来看,肯定是一头雾水,说的都是什么跟什么呀!举个小例来理解下:当我们来实现一个画画的功能,要求画瘦的人和胖的人。画的过程是稳定的,即:头、胳膊、身体、腿都是必须的。而画的具体实现是不一样的,例如:头大、肚子大、腿长等。这时再去理解建造者模式的定义就简单多了。UML图:Builder抽象类中定义各个部分的方法的抽象方法(例:定义了画胳膊、画头、画腿等方法)。ConcreteBuilder类是各种不一样具体表示,它具体实现了Builder中的方法,并且返回一个结 阅读全文
posted @ 2013-10-07 12:01 武沛齐 阅读(820) 评论(0) 推荐(0) 编辑
摘要:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。UML图如下:Strategy是一个抽象类,其中有一个抽象方法Algorithmlnterface(),继承Stratety抽象类的就是具体的算法类,而重写基类的AlgorithmInterface()方法,返回具体算法的返回值。例如:一个商场收银的举例《大话设计模式》 public abstract class AlgrithmSuper { public abstract double AlgrithmResult(double money);... 阅读全文
posted @ 2013-10-02 20:24 武沛齐 阅读(709) 评论(0) 推荐(1) 编辑
摘要:抽象工厂模式 阅读全文
posted @ 2013-08-29 10:23 武沛齐 阅读(677) 评论(0) 推荐(0) 编辑
摘要:对于上一篇中的简单工厂模式,它利用一个【工厂类】来有选择型的实例化指定的对象(要利用加法类时,传入参数“加法”之后工厂类就会去实例化OperateAdd类,并返回该实例),而对于工厂方法模式来说,他为每个操作类都创建一个工厂类,调用工厂类再来实例化指定对象!首先来创建一个接口,来统一各个工厂类的行为interface IFactory{ Operation CreateOperation(); //返回值类型为所有操作类的父类}public AddFactory:IFactory{ public Operation CreateOperation() { return new ... 阅读全文
posted @ 2013-08-29 10:22 武沛齐 阅读(917) 评论(0) 推荐(0) 编辑
摘要:工厂模式分为三种:简单工厂模式、工厂方法模式、抽象工厂模式,此篇我们来总结简单工程模式!简洁来说:简单工厂模式用来解决实例化的问题。例如:存在加法,减法、乘法、除法的类时,当要利用加法时,就需要工厂来对加法类进行实例化,并返回此实例,当要使用乘法,也需要工厂来对乘法类进行实例化,并返回实例。即:对于有选择性的去实例化类的操作都在一个【工厂类】中执行。下面就看一个工厂类 public class OperateFactory { public static Operate GetInstace(string strOperate) { ... 阅读全文
posted @ 2013-08-28 17:41 武沛齐 阅读(1168) 评论(0) 推荐(0) 编辑
摘要:前几天详细学习了汤姆大叔的单例模式,其中涉及到了诸多的基础知识,获益颇多,所以就想着通过正式的学习设计模式不仅对其进行了很好的了解,也能学习和巩固基础知识!正是由于这种想法,让我开始在博客园上搜索设计模式相关的博客,可能是由于个人原因,好多博客都是那么一大坨的代码,看着就对它暗生排斥心里,偶然想起一... 阅读全文
posted @ 2013-08-28 17:32 武沛齐 阅读(1027) 评论(0) 推荐(0) 编辑
摘要:看了汤姆大叔的一篇博客:别再让面试官问你单例,从中学习了好多的基础知识,包括lock、volatile、静态字段和静态构造函数等好多应该掌握的知识,也认识到本身基础不扎实,谨以此博客来警示自己,且勿好高骛远!!懒汉--用的时候再说 阅读全文
posted @ 2013-08-22 20:42 武沛齐 阅读(815) 评论(0) 推荐(0) 编辑
摘要:首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例。简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。 下面来看单例模式的结构图(图太简单了)从上面的类图中可以看出,在单例类中有一个构造函数 Singleton ,但是这个构造函数却是私有的(前面是“ - ”符号),然后在里面还公开了一个 GetInstan. 阅读全文
posted @ 2013-06-24 15:17 武沛齐 阅读(1689) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示