03 2013 档案

设计模式学习3-Strategy模式
摘要:场景描述:一觉醒来看下时间还有30分钟才上班呢,笃笃定定穿好衣服,先抽根烟,然后去刷牙洗脸,慢悠悠上班去了;如果一觉醒来还有15分钟就迟到了,算了不抽烟了,穿好衣服,刷牙洗脸,急匆匆上班去了;如果一觉醒来只有5分钟了,肿么办!先花5秒钟平复一下心情,赶紧穿好衣服冲出去了!可以发现,对于不同的起床时间做了不同的事情,如果用程序实现,有什么合适的模式吗?嗯,Strategy模式Strategy模式(策略模式):定义:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。将对算法的选择和算法的实现相分离。实现:让使用算法的类(Context)包含一个抽象类(Strategy),该抽象类有一个 阅读全文

posted @ 2013-03-31 01:28 cjfwu 阅读(474) 评论(3) 推荐(2)

设计模式学习2-Adapter模式
摘要:背景描述:在日常生活中大家有没有碰到过这种情况:墙上的插座只有3孔的,可是电器的插头是2脚的,怎么办?我的做法是找把老虎钳将插头2脚拧斜然后就可以插到3孔的插座了,哈哈。能不能不要这么粗鲁啊,好吧,找一个2孔转3脚的转换器。这个转换器就是Adapter。Adapter模式:定义:将一个类的接口转换成Client希望的另外一个接口。Adapter模式使原来由于接口不兼容而不能一起工作的类可以一起工作。实现:将原有类包含在另一个类之中。让包含类与需要的接口匹配,调用被包容类的方法。结构图: 说明:Adapter模式最常见的用途就是保持多态性。如结构图所示,Target接口有Request方... 阅读全文

posted @ 2013-03-23 23:28 cjfwu 阅读(496) 评论(1) 推荐(1)

设计模式学习1-Facade模式
摘要:背景描述:我们经常会碰到这样的情况:拿到一个别人开发的类库,需要在此基础上做二次开发,而这个类库因为包含所有可能用到的功能而过于复杂,而我们只需要其中一部分功能或者希望以比较简单的方式使用它,这时Facade模式就派上用场了。Facade模式:定义:为子系统中的一组接口提供一个统一接口,Facade模式定义了一个更高层的接口,使子系统更加容易使用。实现:定义一个(或多个)具备所需接口的新类,让新的类使用原有的系统。结构图: 说明:说白了Facade模式就是把原来复杂的接口变成简单统一的接口,方便Client使用。Facade模式变体:除了上述基本用法以外,Facade模式还有其他的应用... 阅读全文

posted @ 2013-03-23 19:08 cjfwu 阅读(478) 评论(1) 推荐(0)

设备控制(反馈处理)
摘要:因为项目的关系,经常需要程序控制各种设备并接收设备消息反馈,这里以中控为例,说下我对消息反馈的做法。首先需要根据具体的消息反馈建立对应的类,分别为总电源,大屏模式,灯光。View Code 1 public enum Power { Off, On } 2 3 public class PowerNotify : Notify { 4 public Power Power { get; set; } 5 } 6 7 public class ApolloModeNotify : Notify { 8 public int M... 阅读全文

posted @ 2013-03-10 12:05 cjfwu 阅读(502) 评论(1) 推荐(0)

导航