假设有一个软件公司,每当有新产品推出,就把信息通知到一些客户。 把通知这个动作抽象成一个接口。 public interface IService { void Notif(); }客户如果想获得通知,就需要实现以上的接口。这里的客户被看作是观察者。 public class CustomerA :...
分类:
其他好文 时间:
2014-09-07 07:37:04
阅读次数:
202
多线程设计模式:1.Single Threaded Execution Pattern[同一时刻只允许一个线程操作]比喻:三个挑水的和尚,只能同一时间一个人过桥,不然都掉河里喂鱼了。总结:在多个线程同时要访问的方法上加上synchronized关键字。2.Immutable Pattern[变量赋值...
分类:
编程语言 时间:
2014-09-07 03:16:34
阅读次数:
216
当从应用程序全局的角度来看,如果只允许类的一个实例产生,就可以考虑单例模式。 □ 即时加载的单例模式 把类的实例赋值给类的一个静态字段。 class Program { static void Main(string[] args) { Logger log = Logger.GetInstance...
分类:
其他好文 时间:
2014-09-07 00:59:04
阅读次数:
198
所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法。 拿"用最简单的例子理解策略模式(Strategy Pattern) "中的例子来说,在我们的客户端程序中只考虑了用户输入1,2,3的情况,如果用户输入其它数字,比如4,就没有一个对应的IBall接...
分类:
其他好文 时间:
2014-09-06 23:48:46
阅读次数:
302
当一个动作有多种实现方法,在实际使用时,需要根据不同情况选择某个方法执行动作,就可以考虑使用策略模式。 把动作抽象成接口,比如把玩球抽象成接口。 public interface IBall { void Play(); }有可能是玩足球、篮球、排球等,把这些球类抽象成实现接口的类。 public ...
分类:
其他好文 时间:
2014-09-06 23:44:34
阅读次数:
353
String类型1.字符串的模式匹配方法 1) match(),与RegExp的exec()方法相同,也只接受一个参数,要么是一个正则表达式,要么是一个RegExp对象。var text = "cat,bat,fat,sat";var pattern = /.at/;var matches = t....
分类:
编程语言 时间:
2014-09-05 21:05:42
阅读次数:
200
观察者模式,一句话概括,就是定义并维护对象之间的一对多关系。“定义”是指建立“一”与“多”之间的依赖关系;“维护”是指我们可以动态地解除依赖以及建立新的依赖。
分类:
其他好文 时间:
2014-09-05 19:44:01
阅读次数:
191
MAXScript 官方文档里关于获取文件夹下所有文件的方法fn getFilesRecursive root pattern =(dir_array = GetDirectories (root+"/*")for d in dir_array do join dir_array (GetDire....
分类:
其他好文 时间:
2014-09-05 17:52:41
阅读次数:
370
Producer生产者顾名思义就是生产数据的线程,Consumer消费者就是使用数据的线程。可以有多个生产者,也可以有多个消费者,当生产者和消费者都是一个的时候,又叫做管道Pipe Pattern。下面简单写了个例子,一个线程加1,一个线程减1,一个生产者、一个消费者,生产者用来加1,消费者用来减1...
分类:
编程语言 时间:
2014-09-05 16:03:01
阅读次数:
233
reactor设计模式,是一种基于事件驱动的设计模式。《Pattern-Oriented Software Architecture, Volume 2》对这个模式做了具体的解说。这个模式的结构图例如以下:图中的handle相应的是操作系统提供的句柄,比如I/O句柄,Event_Handler类持有...
分类:
其他好文 时间:
2014-09-05 12:47:51
阅读次数:
220