
设计模式
文章平均质量分 75
mydriverc2
这个作者很懒,什么都没留下…
展开
-
23种设计模式
目录创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9. Decorator(装饰)转载 2013-09-25 13:40:40 · 485 阅读 · 0 评论 -
观察者模式
一、 观察者(Observer)模式观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自转载 2013-09-26 10:27:42 · 480 阅读 · 0 评论 -
访问者模式
总结: 访问者模式用于对不同节点进行操作的情况(如List的中的多个元素并不相同),如果将操作放在节点中,会增加节点的复杂性,并不易维护,如果将操作放在调用函数中,则会出现多个判断语句,对不同的节点做不同的操作,增加了节点和调用函数之间的耦合。为了解决这样的问题,在调用函数(对节点进行操作的函数)和节点之间增加了vistor的类,在vistor中实现对各个节点的操作。转载 2013-09-26 10:51:05 · 559 阅读 · 0 评论 -
设计模式学习笔记-迭代器模式 一般
概述: 迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。实用场合:转载 2013-09-26 11:08:16 · 578 阅读 · 0 评论 -
设计模式-----桥接模式(Bridge Pattern)
http://www.cnblogs.com/houleixx/archive/2008/02/23/1078877.html 学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子: 就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽转载 2013-09-26 17:50:41 · 474 阅读 · 0 评论 -
创建型、结构型、行为型模式
http://blog.youkuaiyun.com/wulingmin21/article/details/6753363目的创建型模式Creational Pattern结构型模式Structural Patterns行为型模式Behavioral Pattern概念创建转载 2013-09-26 18:09:50 · 1427 阅读 · 0 评论 -
装饰者模式
http://www.cnblogs.com/god_bless_you/archive/2010/06/10/1755212.html装饰者模式Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。 意图:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更转载 2013-09-26 18:04:37 · 524 阅读 · 0 评论 -
抽象工厂模式
一、 抽象工厂(Abstract Factory)模式抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。为了方便引进抽象工厂模式,引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图: 图中一共有四个产品族,分布于三个不同的产品等级结构中。只要指明一个产品所处的产品族以及它所属转载 2013-09-26 15:20:50 · 564 阅读 · 0 评论 -
C#设计模式——生成器模式(Builder Pattern)
一、概述在软件系统中,有时候面临着复杂的对象创建,该对象由一定算法构成的子对象组成,由于需求变化,这些子对象会经常变换,但组合在一起的算法却是稳定的。生成器模式可以处理这类对象的构建,它提供了一种封装机制来隔离各类子对象的变化,从而保证系统的稳定。二、生成器模式生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。其结构图如下:Builde转载 2013-09-26 17:41:39 · 750 阅读 · 0 评论 -
从桥接模式与策略模式谈起
http://www.blogjava.net/wangle/archive/2007/04/25/113545.html桥接(Bridge)模式是结构型模式的一种,而策略(strategy)模式则属于行为模式。以下是它们的UML结构图。在桥接模式中,Abstraction通过聚合的方式引用Implementor。 在策略模式中,Context也使用聚合转载 2013-09-26 17:53:37 · 574 阅读 · 0 评论 -
一句话总结GOF的23种设计模式
记录一下一、创建型模式 Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Builder:将一个复杂对象的构件与它的表示分离,使得同样的构建过程可以创建不同的表述。 Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟转载 2013-09-26 14:41:59 · 499 阅读 · 0 评论 -
双分派模式
在《GoF 23种设计模式模式解析附C++实现源码》和《设计模式解析之—Visitor模式》中,我给出了Visitor模式的诠释和示例实现源码。 个人觉得例子和解析还是能够比较清晰地为学习和掌握Visitor模式提供一些信息,但是对于其中的一个重要知识没有很好地解释, 这就是multi-dispatch(多分派),multi-dispatch(多分派)是Visitor模式的关键,实际上Vi转载 2013-09-26 10:55:50 · 2457 阅读 · 1 评论 -
命令模式
http://www.cnblogs.com/zhenyulu/articles/69858.html一、 命令(Command)模式命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命 令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求转载 2013-09-25 16:55:59 · 563 阅读 · 0 评论 -
设计模式--facade-结构型
http://blog.youkuaiyun.com/mydriverc/article/details/1716027如果需求不会变话那么设计模式将会不存在上帝给了人类的一个时间这个概念,让一切都变的。人 :出生,儿童,少年,青年,中年,老年,死亡。接口:接口跟外部交互尽量依赖高层抽象,不要依赖实现细节高层是相对稳定,底层是易碎意图(Intent)为子系统中转载 2013-09-25 14:52:32 · 546 阅读 · 0 评论 -
Flyweight模式
http://blog.youkuaiyun.com/phoebin/article/details/3866404Flyweight享元设计模式是一种结构型设计模式,它主要解决的问题是:由于(同类)对象的数量太大,采用面向对象时给系统带来了难以承受的内存开销。比如有这样一个场景:一个停车场中有1000辆汽车,我们所定义的汽车对象占用内存0.3M,那么要实例化1000辆就是300M。由此可见,在这种情转载 2013-09-25 15:05:52 · 486 阅读 · 0 评论 -
职责链模式
行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。行为模式分为类的行为模式和对象的行为模式两种。类的行为模式:类的行为模式使用继承关系在几个类之问分配行为。对象的行为模式:对象的行为模式则使用对象的聚合来分配行为。在后面将要介绍的行为模式包括以下几种:Chain转载 2013-09-25 16:27:46 · 503 阅读 · 0 评论 -
对象适配器与类适配器
什么是适配器(Adapter)?顾名思义就是为了配合你新的需求把某个东西调配成合适你用的东西,就是适配器,是个人的解释哈。那么对象适配器与类适配器两者有什么区别?通过下面举例子来说明。 【鸟】 / \ 【鸡】 【鹰】上面这个图是我随便画的哈,懒得用画图了。解释下,就是转载 2013-09-25 13:31:53 · 769 阅读 · 0 评论 -
23种设计模式(超级简洁)
这个设计模式参考提供四人帮23种模式的快速参考,像原书《设计模式-可复用面向对象基础》中所陈述的,每个模式包括,类图,解释,使用说明和实际例子。 创建模式:用来构建对象以便能从实现系统解耦。结构模式:用不同的对象组成大规模的对象结构。行为模式:用来在对象中管理算法,关系,和责任。 对象层面:处理对象之间的关系,决定于运行期。类层面:处理类的关系,决定于在编译期。转载 2013-09-25 13:41:31 · 589 阅读 · 0 评论 -
装饰(Decorator)模式
装饰(Decorator)模式:也叫包装模式,Adaptor模式也可以叫包装模式,不过有本质的区别,Adaptor模式没有使原有功能增强 Decorator模式使原有功能增强,而且不是通过子类来实现功能增强的。 装饰模式主要特色: 1.用来扩展特定对象的功能,不是扩充某个类的功能。 2.不需要子类,防止由于子类而导致的复杂和混乱 3.对于一个给定的对象,同事可能有不同的转载 2013-09-25 14:41:45 · 827 阅读 · 0 评论 -
小菜编程成长记(八 用“策略模式”是一种好策略)
http://www.cnblogs.com/cj723/archive/2007/03/21/682479.html(续上篇) 小菜次日来找大鸟,说:“《深入浅出设计模式》的第一章我看完了,它讲的是策略模式(Strategy)。『策略模式』定义了算法家族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化, 不会影响到使用算法的客户。看来商场收银系统应转载 2013-09-26 13:43:37 · 586 阅读 · 0 评论 -
设计模式学习笔记-状态模式
1. 概述 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。2. 解决的问题 主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同的一系列类当中,可以把复杂的逻辑判断简单化。3. 模式中的角色 3.1 上下文环境(Context):它定义了客户程序需要的接口并维护一个具体状态角色的实例,转载 2013-09-26 14:35:35 · 481 阅读 · 0 评论 -
强烈推荐!大数据领域的顶级开源工具大集
http://code.youkuaiyun.com/news/2819321随着大数据与预测分析的成熟,开源作为底层技术授权解决方案的最大贡献者的优势越来越明显。如今,从小型初创企业到行业巨头,各种规模的供应商都在使用开源来处理大数据和运行预测分析。借助开源与云计算技术,新兴公司甚至在很多方面都可以与大厂商抗衡。 以下是一些大数据方面的顶级开源工具,分为四个领域:数据转载 2014-04-16 12:31:56 · 806 阅读 · 0 评论