当增加新的产品时,我们就需要修改简单工厂类,这违反了涉及模式中的
“对扩展开放,对修改关闭”。解决方案是抽象工厂类,让抽象工厂类的子类去实例化具体产品。在这种设计下,每增加一个产品就需要增加一个对应的具体工厂,看似繁琐,但扩展性好。类图代码
分类:
编程语言 时间:
2014-05-26 10:33:16
阅读次数:
270
有时候,我们要求工厂创建一组具有某些属性的产品,比如来一桌法式大餐。具体的菜式属于产品,而法式属于产品的属性。将这两个概念抽象一下,就有了产品族和产品等级结构的概念:同一列的所有产品继承同一个父类,同一行的产品构成一个产品族。模式图从图中看出,抽象工厂可以同时依赖于两个产品类,这两个产品类构成一个产...
分类:
编程语言 时间:
2014-05-26 10:28:31
阅读次数:
191
适配器模式把一个类的接口变换成客户端期待的另一个类的接口,使原本接口不匹配的两个类能够在一起工作。适配器有两张实现形式,分别为类的适配器模式和对象的适配器模式类的适配器模式:我们的目标是将SpecificRequest()转化到Request()。类的适配器解决方案是创建一个类Adaptor继承Ad...
分类:
编程语言 时间:
2014-05-26 09:38:55
阅读次数:
390
观察者模式定义了一种一对多的依赖关系,让多个观察者可以同时监听某一个主题对象。这个主题对象发生变化时,就会通知所有的观察者,使他们能够更新自己。模式图:代码:
分类:
编程语言 时间:
2014-05-26 08:28:35
阅读次数:
226
#include#include#include#include using namespace
std;template class joseph{ struct node { T data; node * next; node():next(...
分类:
编程语言 时间:
2014-05-26 06:44:29
阅读次数:
390
首先,约瑟夫环的数学优化方法为:
为了讨论方便,先把问题稍微改变一下,并不影响原意:问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。
我们知道第一个人(编号一定是(m-1)%n) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(...
分类:
其他好文 时间:
2014-05-25 23:38:16
阅读次数:
391
说明
本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时自动弹开页面(URL自己定义)。
可以自定义监控持续分钟数,同时还可以通过多线程加快刷新速度。
源码
package com.itechzero.pricemonitor;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import ja...
分类:
编程语言 时间:
2014-05-24 22:24:26
阅读次数:
668
有一个字符串,其中包含了多个数字子串,要求求出最长的递增数字子串,比如s=‘df1112wg222235hhh25678902344a666666666666666666666666666666666666sd‘中最长递增数字子串是666666666666666666666666666666666666。packagecom.mzsx.binarySearch;
//梦朝思夕实现
importjava...
分类:
编程语言 时间:
2014-05-24 16:54:58
阅读次数:
229
CSDN链接
问题描述:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。求最后剩下的人的初始编号。
可以把问题转换成:n个人(编号0~(...
分类:
其他好文 时间:
2014-05-24 12:59:03
阅读次数:
241