设计模式
omegayy
这个作者很懒,什么都没留下…
展开
-
设计模式入门学习 原型Prototype模式
创建型模式,需要多理解,现只明白用法,不能完全掌握适用情境。 为对象创建者传入一个对象做为原型,创建者通过拷贝这个对象来创建新的对象。原创 2012-02-06 11:13:45 · 516 阅读 · 0 评论 -
开闭原则,转自百度百科
开闭原则简介 开闭原则是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。 1988年,Bertrand Meyer在他的著作《Object Oriented Software Construction》中提出了开闭原则,它的原文是这样:“Software entities should be open for转载 2012-01-13 15:52:02 · 604 阅读 · 0 评论 -
设计模式入门学习 工厂模式
先读一本设计模式入门书,深入浅出设计模式,之后再拜读一下GOF设计模式。 工作也有两年时间了,说设计模式接触的应该比较多了,只是一直没有进行系统的整理。说起来,刚入职做Webkit这让我有一个比较高的技术起点,技术视界也比较宽广。抓时间系统过一遍设计模式,探究下编码的艺术。 工厂模式:为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来。好比是:工厂生产产品,只需要告诉工厂需要原创 2012-01-13 15:44:17 · 661 阅读 · 0 评论 -
关于设计模式和设计原则
设计模式是一种思想,是智慧的结晶了.它有利于我们快速构建高效,模块化,高扩展性的代码.这种思想不仅仅在c++中有,c代码中也是有很充分的使用.设计模式是前提,是重中之重,那比它更重要的是什么?是原则!面向对象设计五大原则1. 单一职责原则(SRP:Single Responsibility Principle)就一个类而言,应该仅有一个引起它变化的原因。2. 开放封闭原则(OC原创 2012-01-15 20:25:32 · 425 阅读 · 0 评论 -
设计模式入门学习 观察者模式
Observer观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 简单而且常用的设计模式,Symbian开发中应用的极广泛。 组成: 抽象目标:1. 目标知道它的观察者,可以有任意多个观察者观察同一个目标。2. 提供注册和删除观察者对象的接口。 抽象观察者:为那些在目标发生改变时需要获得通知的对象定义一个接原创 2012-01-17 16:12:59 · 592 阅读 · 0 评论 -
设计模式入门学习 享元(Flyweight)模式
享元模式 Flyweight:运用共享技术有效的支持大量细粒度的对象。 通过共享对象,来减小对象创建的数量,从而减少内存占用同时减少对象创建等开销,提高代码效率。 FlyWeight模式对那些通常因为数量太大而难以用对象来表示的概念或实体进行建模。例如: 文档编辑器可以为字母表中的每一个字符创建一个Flyweight,每个Flyweight存储一个字符代码,但它在文档中的位置和原创 2012-02-02 14:34:00 · 575 阅读 · 0 评论 -
设计模式入门学习 状态State模式
和策略模式比较类似,用法和适用情况稍有不同。 State对应操作的不同行为和不同操作,通过切换状态State来改变对象行为。原创 2012-02-03 10:58:46 · 418 阅读 · 0 评论 -
设计模式入门学习 构建Builder模式
对象创建类型的模式,核心思想是逐步构造对象并最后获取。原创 2012-02-06 10:34:44 · 547 阅读 · 0 评论 -
设计模式入门学习 桥接Bridge模式
主旨思想:逻辑部分用抽象类完成,具体的基础实现由实际类实现。抽象部分做桥梁作用,做为一个中转。多用于跨平台代码结构中,逻辑层用统一的类结构,平台层做真正的对应平台功能实现。原创 2012-02-06 10:39:34 · 2154 阅读 · 0 评论 -
设计模式入门学习 适配器Adapter模式
Adapter适配器设计模式,主旨思想:通过一个Adapter来使不相关类的接口符合自己的需求。 可用2种方式实现: 1. 在Adapter中加入需要使用接口类的实例,再用该实例实现的Adapter的接口 2. Adapter多重继承逻辑抽象类和需要使用接口类,再分别实现Adapter的接口原创 2012-02-06 16:47:42 · 694 阅读 · 0 评论 -
设计模式入门学习 Decorator装饰模式
需要补全 好容易混淆,觉得好多模式相比起来只是应用情境不一样,叫法就不太相同,但是实质上是很像的。 装饰(Decorator)模式:实现不改变类代码前提下,动态地给一个对象添加一些额外的职责。 举个很容易理解的例子: 有一个文本显示类,TextView,它只负责显示文本。没有实现其它逻辑,现在我们要对它加入ScrollBar,滚动条功能。 建一个ScrollDecor原创 2012-02-10 15:29:51 · 708 阅读 · 0 评论 -
设计模式入门学习 单例模式
很常用,也比较简单的模式。 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。一般来说为保证这一点,要把构造函数变为私有或者受保护的。 class SingleTest {public: virtual ~SingleTest(); static SingleTest* getSingleTon(); private: SingleTest();//单例原创 2012-01-13 22:16:22 · 552 阅读 · 0 评论 -
设计模式入门学习 策略模式
策略模式 Strategy:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。本模式使算法可以独立于使用它的客户而变化。 先来看一个简单的伪码示例://抽象策略class Compositor {public: virtual int Compose() = NULL; };//上下文class Composition {public: Comp原创 2012-02-02 12:03:10 · 647 阅读 · 0 评论 -
设计模式入门学习 职责链模式
Chain Of Responsibility,职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 组成: 抽象处理者:它定义了一个处理请求的接口。 具体处理者:实现抽象处理者的接口,并处理它所负责的请求,如果不能处理则请问它的后继者。 纯的职责链模式,规定一个具体处理者原创 2012-01-15 21:39:38 · 503 阅读 · 0 评论 -
设计模式入门学习 组合模式
组合模式,Composite:上一篇中提过,和职责链模式结合使用。 定义:将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。 组成: 抽象构件:为组合中的对象声明接口,也可以提供接口的缺少行为。 树叶构件:在组合中表示叶子节点对象,没有子节点。实现抽象构件中的接口。 树枝构件:在组合中表示分支节点对象,有子节点。原创 2012-01-16 17:01:02 · 507 阅读 · 0 评论 -
设计模式入门学习 模板方法模式
模板方法模式Template Method,同样很简单的模式,却被非常广泛的应用。 定义:定义一个操作中的算法的骨架,而将一些具体步骤延迟到子类中实现。它使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 适用性: 一次性实现一个算法的不变部分,并将可变的行为留给子类来实现。 各子类中的公共行为应该被提取出来集中到一个公共父类中以避免代码重复。 组成:原创 2012-01-16 19:34:08 · 485 阅读 · 0 评论 -
设计模式入门学习 Facade外观模式
Facade外观模式:为子系统中的一组接口功能封装一个更上层的便捷的接口。使复杂的存在很多子系统的模块使用方便。 这个模式并不难理解,我做过的Libpng库到Symbian移植就应用了该设计模式。 定义一组Symbian的.h和.cpp文件,定义导出接口。C库图片解码的调用序列,封装到相应的接口中,编译成DLL。这样Symbian中使用时不必关心C库实现步骤如何,只需要按正确方式调用我原创 2012-02-13 14:33:08 · 557 阅读 · 0 评论