
【设计模式】
小田
无人扶我青云志,我自踏雪向山巅。倘若命中无此运,孤身亦可登昆仑。他朝若有翻身时,生吃黄莲也叫甜。
展开
-
【设计模式】商场促销 -- 策略模式
一,概念 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。二,策略模式的组成 1)抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 2)具体策略角色:包装了相关的算法和行为。 3)环境角色:持有一个策略类的引用,最终给客户端调用。三,补充C++知识类原创 2012-06-18 11:39:24 · 3280 阅读 · 3 评论 -
【设计模式】好菜每回味不同 --- 建造者模式
一,概述 Builder模式的定义是:将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 首先它意图是要构建一个复杂的对像,而这个复杂的对像往往需要由好几个子对像或分步骤来完成最终的这个对象的构建,而这个复杂对象的子对像经常需要不断的变化,但它的构建过程是相对是稳定的。 精髓:通过一个统一的工序或者约束构造出同一的对象。二,原创 2012-06-28 16:40:24 · 1117 阅读 · 0 评论 -
【设计模式】有些类也需要计划生育 -- 单例模式
一,概述 单例模式确保某一个类只有一个实例,而且自行实例化(自己保存它的唯一实例)并向整个系统提供这个实例。这个类称为单例类。 显然单例模式的要点有三个: 一是某个类只能有一个实例 (本身的初始方法为private,且只有实例为空的时候才建立)原创 2012-07-09 23:52:53 · 1720 阅读 · 2 评论 -
【设计模式】雷锋依然在人间 --- 工厂方法模式
一,概述 工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模原创 2012-06-23 00:49:38 · 5318 阅读 · 20 评论 -
【设计模式】牛市股票还会亏钱 --- 外观模式
一,概述 外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。二,例如 股民买股票,大部分散户自己买股票、国债、房地产,然后到时机抛售。这样就要求每个股民对每支股票都和了解才能保证赚钱,就是说每个股民都要跟一大堆股票打交道。 而更加优化的方法是,股民将钱交给专业的原创 2012-06-28 15:21:43 · 1210 阅读 · 0 评论 -
【设计模式】在NBA需要翻译 --- 适配器模式
一,概述 适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。二,设配器基本构成 Target:客户期待的接口(可以是具体的或抽象的类) Adaptee:需要适配的类(用户要调用,但是不能直接调用)原创 2012-07-08 00:01:27 · 1324 阅读 · 0 评论 -
【设计模式】烤羊肉串引来的思考 --- 命令模式
一,概述 定义:命令模式将一个请求或者操作封装到一个命令对象中。允许系统使用不同的请求将客户端参数化,对请求排队或者记录请求日志,提供命令的撤销,恢复能力 优点:1 命令模式使新的命令很容易被加入2 允许接受请求方否决请求3 可较容易地设计一个命令队列4 可以实现对请求的Undo,Redo5 可以将命令计入日志二,示例原创 2012-07-10 16:03:35 · 1509 阅读 · 0 评论 -
【设计模式】把风放哨,防老板 --- 观察者模式
一,概述 观察者模式(有时又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。 二,示例 题目描述:公司里有的员工偷懒,看股票,看NBA。老板回来原创 2012-07-02 20:35:54 · 1167 阅读 · 2 评论 -
【设计模式】轻巧的变化不同数据库操作 --- 抽象工厂模式
一,概述 抽象工厂:提供一个创建一些列相关或相互依赖的接口,而无需指定他们具体的类。 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。 抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。根据L原创 2012-07-02 21:30:21 · 1787 阅读 · 0 评论 -
【设计模式】无尽加班何时休 --- 状态模式
一,概述 状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 意图:允许一个对象在其内部状态改变时改变它的行为 适用场景: 1.一个对象的行为取决于它的状态原创 2012-07-02 23:27:21 · 1692 阅读 · 0 评论 -
【设计模式】加薪非要老总批 --- 职责链模式
一,概述 定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为之。 优点:客户提出请求时,请求时沿链传递直至有一个ConcreteHandler对象负责处理它 二,职责链基本代码#include using namespace std; clas原创 2012-07-18 22:43:30 · 1096 阅读 · 2 评论 -
【设计模式】考题 -- 模板方法模式
一,概述 模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构既可以重定义该算法的某些特定步骤 核心思想:抽象类的方法推迟到子类实现。基类示例指向子类实现二,示例 老师出考题,学生抄题,然后答题。 1)第一种实现方式 缺点:学生每次原创 2012-06-27 00:25:09 · 2085 阅读 · 2 评论 -
【设计模式】简单工厂模式
一,概念 从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。二,实例 请用C++、Java、C#任意一种面向对原创 2012-06-17 17:26:43 · 3118 阅读 · 13 评论 -
【设计模式】穿什么有这么重要? --- 装饰模式
一,定义 英文名字:Decorator Pattern,又称装饰者模式。 装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 二,总结 装饰模式什么时候实用? 当系统需要新功能的时候,向旧的类中添加新的代码,而新的代码装饰了原有类的核心职责或原创 2012-06-22 23:05:47 · 1491 阅读 · 1 评论 -
【设计模式】为别人做嫁衣 --- 代理模式
一,概述 定义:代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。 作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 思想:为了提供额外的处理或者不同的操作原创 2012-06-22 23:35:32 · 2115 阅读 · 0 评论 -
【设计模式】迪米特法则
一,概述 迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接相互作用。。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用原创 2012-06-27 00:51:26 · 1943 阅读 · 5 评论 -
【设计模式】分公司是一个部门? ---- 组合模式
一,概述 概念:将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和使用具有一致性。 Client:客户端 Component:组合模式中对象接口声明,在适当情况下,实现所有类共有接口的默认行为。原创 2012-07-09 00:00:47 · 1600 阅读 · 0 评论 -
【设计模式】迭代器模式
一,概述 定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴漏该对象的内部表示。 作用:客户端可以不必知道数据集合的结构,而通过迭代器的接口来操作数据,不仅保护了数据结构,同时可以自定义数据的访问方式。 其实C++中的STL模板类中大量用到了此种设计模式!二,示例 问题:售票员清点上车人数,然后挨个人遍历,让其原创 2012-07-09 00:16:16 · 2016 阅读 · 0 评论 -
【设计模式】如果再回到从前 ---- 备忘录模式
一,概述 定义:在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 1.Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。 2.Meme原创 2012-07-08 01:03:09 · 1284 阅读 · 0 评论 -
【设计模式】手机软件何时统一 ---- 桥接模式
一,概述 定义:将抽象部分与实现部分分离,使它们都可以独立的变化。 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 【注意】C++中继承声明为 public 二,示原创 2012-07-10 11:40:13 · 3462 阅读 · 0 评论