
设计模式
搞向CUIT
这个作者很懒,什么都没留下…
展开
-
大话设计模式-----策略模式
1 什么是策略模式如果你设计的类中,有经常要改变的代码,(比如说算法),那么就要把它们提取出来,如果不这样做,你就需要用大量的is-else来判断究竟需要用哪些算法。 2 开始策略模式把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。比如定义一系列的算法,把每一个算法封装起来, 并且使它们可原创 2016-08-10 14:40:25 · 454 阅读 · 0 评论 -
大话设计模式-----观察者模式
1 什么是观察者模式观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖着都会收到通知并且自动更新。 2 一个例子比如说定报纸 报社的业务就是出版报纸。 向某家报社订报纸,只要你是他们的订户,你就一直会收到新的报纸。 当你不想看报纸了,你就取消订阅。 只要报社没有倒闭,就会源源不断的有人订阅报纸或者取消订阅。 3 构成观察者模式有两大组成,一个是:主题,也原创 2016-08-10 15:19:29 · 498 阅读 · 0 评论 -
大话设计模式-----装饰者模式
1 什么是装饰者模式装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰着提供了比继承更有弹性的替代方案。这虽然说明了装饰着模式的“角色”,但是没说明怎么在我们的实现中实际应用它,下面举一个简单的例子。 2 为什么不用继承我们就举星巴克的例子。在购买饮料的时候,除了我们可以选择像DarkRoast(深度烘焙)以外,我们还可以加东西,比如说燕麦、豆奶,如果我们使用继承,很可能就成了如下原创 2016-08-10 17:35:44 · 562 阅读 · 0 评论 -
小谈抽象工厂模式与工厂方法,Abstract Factory Pattern and Factory Method
问题:从我所阅读的材料中,我看到:工厂方法模式允许你定义一个方法,这个方法可以创建一个实实在在的商品,但是却隐藏了实现细节,这样客户(client)可以得到产品。我第一个问题是关于抽象工厂:是不是抽象工厂模式只允许你创建一系列对象而不是仅仅一个对象?是不是抽象工厂只会根据你调用的方法返回一个很大的对象,或者许多对象?第二个问题是,我不是很理解这样一句话: 使用抽象工厂模式,一个类的责任就是实例化原创 2016-08-10 22:59:07 · 813 阅读 · 0 评论 -
大话设计模式-----命令模式
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图: 命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构: **ConcreteCommand类:**Command类的实现类,对抽象类中声明的方法进行实现。Client类:最终的客户端调用类。原创 2016-08-11 13:04:46 · 367 阅读 · 0 评论