设计模式
damenhanter
这个作者很懒,什么都没留下…
展开
-
设计模式之单例模式
单例模式主要要素:私有的构造函数指向自己实例的私有静态指针以自己实例为返回值的静态的公有的函数 class CSingleton{private:CSingleton(){}public:static CSingleton* GetInstance(){if(m_pSingleton==NULL){m_pSingleton=new C原创 2012-05-07 18:13:57 · 430 阅读 · 0 评论 -
FlyWeight模式
FlyWeight模式一 意图运用共享技术有效地支持大量细粒度的对象。二 动机 有些应用程序得益于在其整个设计过程中采用对象技术,但简单化的实现代价极大。使用面向对象的抽象化,可能会造成庞大的对象群,造成空间的巨大消耗,而影响性能。在文档编辑器例子中如果一个字符对应一个对象,那么一篇文档所要容纳的对象将是非常的庞大耗费大量的内存。转载 2017-03-15 23:59:08 · 262 阅读 · 0 评论 -
Facade模式
一 意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。二 动机 将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(Facade)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。转载 2017-03-15 23:59:58 · 379 阅读 · 0 评论 -
Decorator模式
Decorator模式一 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。——包装器Wrapper。二 动机 有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种转载 2017-03-16 00:00:44 · 331 阅读 · 0 评论 -
Composite模式
Composite模式一 意图 将对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象操作和组合对象的操作使用具有一致性。二 动机 绘图编辑器和图形捕捉系统图形应用程序中,总是存在简单的图形到简单的组件再到复杂的组件,但他们在本质上都是图形(各种基本的图形组合或者递归组合)。这可以分成两个部分:基本图元和组件图转载 2017-03-16 00:01:44 · 389 阅读 · 0 评论 -
Bridge模式
一 意图 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 (类设计的开闭原则:对扩展开放,对修改关闭)二 动机 看看文章中的例子:可移植的window的抽象部分的实现,及其扩展的方式 1 如需增加新的类型window就必须要重新增加新的window类, 且仍然要区分对应平台的window类型,如果要是新增加一转载 2017-03-16 00:02:34 · 379 阅读 · 0 评论 -
Adapter模式
一 意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。二 动机 为复用而设计的通用的类,总是存在一些特殊的情况,使其不能够使用或者完成相应的扩展性的功能。看文中所给的例子:绘图编辑器中新增加文本图形编辑 TextView是呈现文本的,转载 2017-03-16 00:03:06 · 444 阅读 · 0 评论 -
创建型模式学习总结——设计模式学习笔记
一 创建型模式1 创建型模式抽象了实例化的过程 将对象的创建,组合,表示独立于系统。一个类创建型模式使用继承来改变被实例化的对象,一个对象的创建型模式是将实例化委托给另一个对象,以避免硬编码(hard_coding)带来了的不可扩展和不能灵活应对变化,而来降低对象之间关系的重新更改或者组合或者复合所带来的复杂性。 创建型模式是解决对象实例化问题:由谁创建转载 2017-03-16 00:05:02 · 324 阅读 · 0 评论 -
Singleton模式——设计模式学习
Singleton一 意图 保证一个类仅有一个实例,并提供一个访问的全局访问点。二 结构 为什么需要仅有一个类的单例类呢?在很多种情况下,一个系统只需要此类的一个实例就够了:一个窗口管理器,一个消息通知器,一个数据存储器…… 有时候只能有一个:系统共用一个存储器,很多地方访问到存储器,必须要保证存储器唯一。三 代码实转载 2017-03-16 00:05:46 · 287 阅读 · 0 评论 -
Prototype模式——设计模式学习
Prototype一 意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。二 动机 在图形编辑器中增加音符编辑构造乐谱编辑器的例子中。GraphicTool作为图形编辑器的框架,其中提供了可以添加的图形;Graphic作为图形类的基类,新增加的音乐相关符号也都从Graphic派生。要实现乐谱构造器,需要新转载 2017-03-16 00:06:18 · 403 阅读 · 0 评论 -
Prototype模式——设计模式学习
Prototype一 意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。二 动机 在图形编辑器中增加音符编辑构造乐谱编辑器的例子中。GraphicTool作为图形编辑器的框架,其中提供了可以添加的图形;Graphic作为图形类的基类,新增加的音乐相关符号也都从Graphic派生。要实现乐谱构造器,需要新转载 2017-03-16 00:07:01 · 466 阅读 · 0 评论 -
Factory Method模式
1. 意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。2. 动机框架使用抽象类定义和维护对象之间的关系。这些对象的创建通常也由框架负责。在多文档框架中,两个主要的抽象是类Application和Document。客户必须通过它们的子类来做与具体应用相关的实现。例如,为创建一个转载 2017-03-16 00:07:50 · 916 阅读 · 0 评论 -
Buileder(生成器)—对象创建型模式
Buileder(生成器)—对象创建型模式一 意图将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。二 适用性在以下情况使用Build模式:1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2 当构造过程必须允许被构造的对象有不同的表示时。3 Builder模式要解决的也正是这样的问题:转载 2017-03-16 00:08:49 · 591 阅读 · 0 评论 -
PolicyManager工厂模式与动态加载
PolicyManager工厂模式与动态加载 Android FrameWork——PolicyManager在学习Android跟踪setContentView执行过程代码的时遇到:Attach(){ //着实不清楚PolicyManager到底如何创建的,哪一个对象。 mWind转载 2017-03-15 23:57:49 · 701 阅读 · 0 评论 -
Android学习 View与Composite模式应用
一 Composite模式将对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象操作和组合对象的操作使用具有一致性。 这里面涉及到单个对象和组合对象的操作问题。 将单个对象和组合对象一致的对待能使:客户代码一致简单,使用更加灵活多变,便于扩展新的组合对象,便于对象的管理等。转载 2017-03-15 23:57:03 · 399 阅读 · 0 评论 -
Android中Adapter和Bridge模式理解和应用
Android中Adapter和Bridge模式理解和应用 一 Adapter模式意图: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。适用性:使用一个已存在的类,而它的接口不符合你的要求;你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配他们的接口转载 2017-03-15 23:56:17 · 1279 阅读 · 0 评论 -
23种设计模式目录总览
目录创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9. Decorator(装饰)转载 2016-01-07 10:30:01 · 8597 阅读 · 0 评论 -
FlyWeight模式——设计模式学习笔记
FlyWeight模式一 意图运用共享技术有效地支持大量细粒度的对象。二 动机 有些应用程序得益于在其整个设计过程中采用对象技术,但简单化的实现代价极大。使用面向对象的抽象化,可能会造成庞大的对象群,造成空间的巨大消耗,而影响性能。在文档编辑器例子中如果一个字符对应一个对象,那么一篇文档所要容纳的对象将是非常的庞大耗费大量的内存。转载 2016-01-07 16:09:05 · 509 阅读 · 0 评论 -
Decorator模式——设计模式学习笔记
Decorator模式一 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。——包装器Wrapper。二 动机 有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。使用继承机制是添加功能的一种转载 2016-01-07 16:09:54 · 521 阅读 · 0 评论 -
Facade模式——设计模式学习笔记
Facade模式一 意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。二 动机 将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(Facade)对象,它为子系统中较一般的设施提供了一个转载 2016-01-07 16:11:42 · 410 阅读 · 0 评论 -
Adapter模式——设计模式学习笔记
Adapter模式一 意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。二 动机 为复用而设计的通用的类,总是存在一些特殊的情况,使其不能够使用或者完成相应的扩展性的功能。看文中所给的例子:绘图编辑器中新增加文本图形编辑 Te转载 2016-01-07 16:35:42 · 792 阅读 · 0 评论 -
Bridge模式——设计模式学习笔记
Bridge模式一 意图 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 (类设计的开闭原则:对扩展开放,对修改关闭)二 动机 看看文章中的例子:可移植的window的抽象部分的实现,及其扩展的方式 1 如需增加新的类型window就必须要重新增加新的window类, 且仍然要区分对应平台的windo转载 2016-01-07 17:53:24 · 413 阅读 · 0 评论 -
Composite——设计模式学习笔记
Composite模式一 意图 将对象组合成树形结构以表示“部分——整体”的层次结构。Composite使得用户对单个对象操作和组合对象的操作使用具有一致性。二 动机 绘图编辑器和图形捕捉系统图形应用程序中,总是存在简单的图形到简单的组件再到复杂的组件,但他们在本质上都是图形(各种基本的图形组合或者递归组合)。这可以分成两个部分:基本图元和组件图转载 2016-01-07 18:31:44 · 496 阅读 · 0 评论 -
设计
OO基础:抽象、封装、继承、多态OO原则:1.封装变化2.多用组合,少用继承3.针对接口编程,不针对实现编程4.为交互的对象之间的松耦合设计而努力5.类应该对扩展开放,对修改关闭6.依赖抽象类,不依赖具体类7.由父类主控一切,它需要的时候自然会去调用子类最少知道原则:高内聚、低耦合在该对象方法内,我们只应该调用属于以下范围内的方法:1.该对象本身原创 2016-07-21 10:52:21 · 331 阅读 · 0 评论 -
Android学习按键事件监听与Command模式
Android学习按键事件监听与Command模式 一 Command模式意图: 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。 将请求被封装成一个对象,当向某对象提交请求时,使我们可以不用去知道被具体的请求的操作或者请求的接收者, 实现了动作的请求者对象和转载 2017-03-15 23:51:26 · 709 阅读 · 0 评论 -
Android学习——ActivityManager与Proxy模式的运用
Android学习——ActivityManager与Proxy模式的运用一 Proxy模式意图: 为其他对象提供一种代理以控制这个对象的访问。适用性: l 远程代理( Remote Proxy ): 为一个对象在不同的地址空间提供局部代表。 l 虚代理(Virtual Proxy)根据需要创建开销很大的对象。使用一个代理对象作为转载 2017-03-15 23:52:11 · 320 阅读 · 0 评论 -
Android学习 ContentProvider数据更新与Observer模式
Android学习 ContentProvider数据更新与Observer模式一 Observer模式意图: 定义对象之间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被更新。 依赖(Dependents)、发布-订阅(Publish-Subscribe)。处理一对多情况下对象之间的依赖关系。对象之间必然会存在依赖关系转载 2017-03-15 23:54:04 · 534 阅读 · 0 评论 -
Android学习CursorWrapper与Decorator模式
Android学习CursorWrapper与Decorator模式一 Decorator模式意图: 动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 动态的给一个对象,而不是对整个类添加额外职责,说明此模式将采用的结构是组合而不是继承;要给一个对象添加职责,通常可以使用其类的派生类对象替换当前转载 2017-03-15 23:55:33 · 681 阅读 · 0 评论 -
Abstract Factory 模式
Abstract Factory 模式一 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类。二 逻辑 抽象工厂模式中的4中不同角色:1 抽象工厂(Abstract Factory): 它与应用系统商业逻辑无关。2 具体工厂(Concrete Factory): 这个角色直接在客户端的调用下创建产品的实例转载 2017-03-16 00:09:32 · 360 阅读 · 0 评论