装饰者模式是很有意思的一种设计模式,你将能够在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。不是使用继承每回在编译时超类上修改代码,而是利用组合(composition)和委托(delegation)可以在运行时具有继承行为的效果。
代码应该如同晚霞中的莲花一样地关闭(免于改变),如同晨曦中的莲花一样地开放(能够扩展)。
这就是,设计原则之五:类应该对扩展开放,对...
分类:
编程语言 时间:
2014-06-08 17:35:12
阅读次数:
252
模式定义:
单例模式确保一个类只有一个实例,并提供一个全局访问点。
模式结构:
单例模式编程实现及执行结果:
#include
using namespace std;
单例类
class Sigleton
{
public:
static Sigleton* getInstance();
private:
Sigleton(){}
stat...
分类:
编程语言 时间:
2014-06-08 15:08:54
阅读次数:
242
该形式的工厂模式是我项目中用到的方法,属于很成熟的模版,读者可以直接拿来在自己项目中使用。个人感觉这种方法真正做到了“开放封闭”的原则,最大好处是用户产品类的设计完全不依赖于该模式的实现,比如提供必须的相关函数等。如果不理解工厂模式的话,请参考网上其它文章,本实现在理解上有一点小小的难度。好东西,大家慢慢享用,话不多说,先放代码!
首先是产品基类,它相当于一个接口,产品需要有什么动作就写在这里吧...
分类:
其他好文 时间:
2014-06-08 14:56:18
阅读次数:
202
(1)确定变量和返回值是属于原语(primitive)类型或者可序列化的(Seriailizable)类型。原语类型 都实现了Seriailizable接口。
(2)transient 关键字,告诉JVM不要序列化这个字段。
动态类下载(dynamic class downloading )
代理模式 :控制对象的访问
代理模式有很多种。如:远程代理,虚拟代理。动态代理(...
分类:
其他好文 时间:
2014-06-08 10:32:05
阅读次数:
245
大话设计模式原型模式,实例教会你怎样使用原型模式。...
分类:
其他好文 时间:
2014-06-08 10:29:27
阅读次数:
177
Head First设计模式中介绍策略模式时以Duck类作为例子,其中用flyBehavior和quackBehavior两个接口引用变量代表鸭子飞行和鸭子叫这两种行为,通过改变flyBehavior和quackBehavior来满足不同的Duck子类的不同行为,这样带来的好处就是可以在运行时改变Duck子类的行为。下面是我用C++改写的代码。...
分类:
编程语言 时间:
2014-06-08 09:13:14
阅读次数:
243
概念
所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在。就像是Java Web中的application,也就是提供了一个全局变量,用处相当广泛,比如保存全局数据,实现全局性的操作等。
java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。
单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己自己...
分类:
编程语言 时间:
2014-06-08 08:13:53
阅读次数:
266
一、首先说说View和ViewGroup吧Android系统中的所有UI类都是建立在View和ViewGroup这两个类的基础上的。所有View的子类成为”Widget”,所有
ViewGroup的子类成为”Layout”。View和ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同...
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示简单描述:1个产品类(可有可无,关键是建造流程),1个抽象建造步骤类,多个具体建造子类(不同的类建造不同的产品),1个指挥者(用于规定建造流程),客户端指定需要建造的具体类型,由指挥者建造好之后,建造者子类返回对应产...
分类:
编程语言 时间:
2014-06-08 06:39:08
阅读次数:
296
设计模式是跟具体业务息息相关的。设计模式产生的原因:存在复杂的业务,经常需要系统重构。为了减轻工程师的工作量,便于系统重构和修改,便于测试,设计模式产生了,其目的就是上面所说的。所以设计模式不会凭空出现,不同的业务会产生不同的设计模式。系统重构产生的原因:第一次设计开发系统的时候,总是会有遗漏,会有...
分类:
其他好文 时间:
2014-06-07 23:11:01
阅读次数:
397