设计模式之策略模式
因为是跟工厂模式一同看的策略模式,刚开始还真没发现他们之间的区别。主要是《大话设计模式》书的作者在策略模式中用到了工厂模式。其实工厂模式是实现策略模式的一种方式,而具体策略模式是怎么样的,核心是什么,下面我们可以总结出来:
1、策略模式根本上来说就是封装了算法,不考虑具体实现,只考虑得到结果的模式。因此策略模式又叫算法簇模式,定义不同的算法,并且具体算法之间可以...
分类:
其他好文 时间:
2015-06-01 13:21:39
阅读次数:
107
序号CreationalPatterns创建模式使用频率 1Abstract Factory 抽象工厂模式5Creates an instance of several families of classes2Builder 建造者模式2Separates object constructi...
分类:
其他好文 时间:
2015-06-01 11:16:18
阅读次数:
126
设计模式要求我们不应该针对实现编程,为了降低耦合度,提高可维护性。当程序中出现“new”的时候,就证明程序在实例化一个具体类,所以用的是实现,而不是接口。如果代码绑着具体的类会导致代码更加脆弱,缺乏弹性。
紧接着我们设计模式一种的“模拟鸭子”这个事件:
Duck duck = new MallardDuck();
可以看到,我们需要使用Duck接口让代码具有弹性,但是还是需要建立具体类的...
分类:
其他好文 时间:
2015-05-31 23:20:28
阅读次数:
181
类的设计第一种类:商品的类,父类是个抽象类;
第二种类:折扣的类,父类也是个抽象类
类图如下;
使用技能
用继承抽象类实现多态,用多态来实现工厂模式;
使用反射机制来实现构造实例的多态和工厂模式;
工厂模式可以增加系统的可扩展性;
使用Dictionary中的list集合来减少代码量;
源代码仓库类using System;
using System.Collections.Generic...
/*shop.h文件*/#ifndef _SHOP_#define _SHOP_#include#include//现金收费抽象类class Cashsuper{public: virtual double acceptcash(double money);};//正常收费子类class cashn...
分类:
其他好文 时间:
2015-05-31 16:39:06
阅读次数:
101
这几天准备把设计模式好好看一下,顺带着做下笔记,设计模式以前零零散散看过一些,做项目时也用过或见到过一些设计模式,但是可能只是停留在见到那种设计模式时有点印象,有的时候也将名称弄混,希望这次系统学习的机会能让我对设计模式有个更加深刻的印象吧。
这次学习设计模式主要的参考资料有:
《大话设计模式》
http://www.dofactory.com/net/design-patterns
上面两...
分类:
其他好文 时间:
2015-05-31 15:25:41
阅读次数:
119
PSR-0规范的设计基础
1.全部使用命名空间
2.所有php文件必须自动载入,不能有include/require
spl_autoload_register
3.单一入口模式
1.三种基本的设计模式
工厂模式
用一个工厂方法去替换掉一个new
class Factory{
static function createDatabase(){
...
分类:
Web程序 时间:
2015-05-31 12:31:16
阅读次数:
134
工厂模式与简单工厂模式非常相似。可以看出简单工厂模式,如果有添加一个新的实体类,那么就需要去修改工厂类中的方法,增加一个对应的语句来输出对应的对象。这样就违背了开放封闭的原则。工厂模式就是为了解决这个问题。抽象一个工厂接口,对应的一种实体类那么就有对应的一个实体工厂。通过这样的方式,那么就避免了去修...
分类:
其他好文 时间:
2015-05-29 20:11:27
阅读次数:
104
1. 简单工厂模式如何理解简单工厂,工厂方法, 抽象工厂三种设计模式?简单工厂方法包含:父类拥有共同基础接口,具体子类实现子类特殊功能,工厂类根据参数区分创建不同子类实例。该场景对应的UML图如下所示:代码结构如下Animal 类@interface Animal :NSObject@protert...
分类:
移动开发 时间:
2015-05-29 19:51:56
阅读次数:
149
基础1,什么是命名空间,变量污染,变量声明提升,预编译?如何检查一段代码执行后是否声明了全局变量?2,隐式转换的种种规则3,关于对象,对象的属性可能有哪些特性(attribute)?什么是原型链?如何检测某一属性是在对象中还是原型链中?如何检测是否是普通对象或空对象?写一个工厂模式?(工厂模式也有很...
分类:
编程语言 时间:
2015-05-29 11:34:48
阅读次数:
142