设计模式
martin_liang
这个作者很懒,什么都没留下…
展开
-
抽象工厂的起源
转自出处抽象工厂的起源据说最早的应用是用来创建在不同操作系统的视窗环境下都能够运行的系统。比如在Windows与Unix系统下都有视窗环境的构件,在每一个操作系统中,都有一个视窗构件组成的构件家族。我们可以通过一个抽象角色给出功能描述,而由具体子类给出不同操作系统下的具体实现,如图: 可以发现上面产品类图有两个产品等级结构,分别是Button与Text;同时有两转载 2012-09-05 20:34:30 · 1186 阅读 · 1 评论 -
c++设计一个不能被继承的类,为什么必须是虚继承?原因分析
转自:http://my.oschina.net/cuilili/blog/323696用C++实现一个不能被继承的类(例1)?12345678910111213141516171819202122232425262728293031转载 2016-02-20 23:08:26 · 334 阅读 · 0 评论 -
elevator design example
转自:http://careercup.com/question?id=5698327039442944repose with format corrected*public class Elevator { public static final int MAX_FLOORS = 50; // upward floor queue private Priorit转载 2016-02-14 19:28:34 · 423 阅读 · 0 评论 -
Builder模式
转自出处 最近重读GOF的《设计模式》,读到Builder模式的时候,发现还是不能领悟;网上搜了下其他人的解释,发现很多人都用错了Builder模式,结构形似Builder,实际上却更像Template、或者Factory Method,或者四不像,并没有体现出Builder模式的思想和威力;通过对比学习,也逐渐加深了我对Builder模式的认识,于是就有了这篇文章。转载 2013-05-23 20:49:05 · 791 阅读 · 0 评论 -
中介者模式
转自出处 一、引子 中介在现实生活中并不陌生,满大街的房屋中介、良莠不齐的出国中介……。它们的存在是因为它们能给我们的生活带来一些便利:租房、买房用不着各个小区里瞎转;出国留学也不用不知所措。中介者模式在程序设计中也起到了类似的作用。二、定义与结构GOF给中介者模式下的定义是:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要转载 2013-05-24 11:17:09 · 4787 阅读 · 0 评论 -
装饰模式
转自出处现在我们来学习装饰模式。说实话,真不想写这个,因为提到这个装饰,程序员就很伤感(我也是),就想到了遥远地她和虚无缥缈地房子。房子都还没着落,谈什么装修和粉饰啊。一堵粗糙的墙,刷上白白地粉,再贴上几张壁画,整个一焕然一新。多美的事啊。哎,既然想到了,就咬着牙多想会,至少心里还有个期盼。真心祝愿大家看完这篇文章后都能够梦想成真。 生活中的装饰是很好理解的,我们打两个比方转载 2013-05-22 21:25:16 · 463 阅读 · 0 评论 -
组合模式
转自出处本文介绍设计模式中的组合(Composite)模式的概念,用法,以及实际应用中怎么样使用组合模式进行开发。Composite模式的概念Composite模式是构造型的设计模式之一,通过递归手段来构造诸如文件系统之类的树形的对象结构;Composite模式所代表的数据构造是一群具有统一接口界面的对象集合,并可以通过一个对象来访问所有的对象(遍历)。转载 2013-05-22 22:38:15 · 518 阅读 · 0 评论 -
visitor模式
转自出处"众口难调"出自宋·欧阳修《归田录》卷一:"补仲山之衮,虽曲尽于巧心;和傅说之羹,实难调于众口。"其原意是各人的口味不同,很难做出一种饭菜使所有的人都感到好吃。众口是否真的难调呢?其实有个不错的办法可以解决众口难调的问题,那就是吃"自助餐"。面对众口难调的问题去吃"自助餐"已经不是什么新鲜事,承办一个几百人、几千人的会议往往采用的都是自助餐的方式,让来宾各取所需转载 2013-05-22 22:27:56 · 1077 阅读 · 0 评论 -
简单工厂模式和策略模式的区别
转自出处简单工厂模式和策略模式的理解 相同之处:1.它们都有一个抽象类或公共接口,并且在抽象类或者接口中,定义一个方法(或虚拟抽象方法);2.通过子类进行继承父类或者实现接口方法。3.使用多态特性,进行实例方法调用,调用的是子类的方法; 区别之处:1.简单工厂模式 强调的创建类对象,根据 字符串类型参数传入参数,进行实例化;2.简单工厂模转载 2012-09-05 19:59:18 · 1457 阅读 · 0 评论 -
设计模式之--桥接模式
转自出处 学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对转载 2012-09-05 19:53:15 · 893 阅读 · 0 评论 -
设计一个只能在堆上或栈上实例化的类
转自:http://www.cnblogs.com/luxiaoxun/archive/2012/08/03/2621827.html一道C++笔试题:设计一个只能在堆内存上实例化的类和一个只能在栈内存上实例化的类只能在堆内存上实例化的类:将析构函数定义为private,在栈上不能自动调用析构函数,只能手动调用。也可以将构造函数定义为private,但这样需要手动写一个函数转载 2016-02-20 23:17:13 · 677 阅读 · 0 评论