命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。Receiver类,知道如何实施与执行一个与请求相关的操作,任何类都可能作为一个接收者。 class Receiver { public void Action() { Console.WriteLine("执行请求!"); } }Command类,用来声明执行操作的接口。 abstract class Command { protected Re... Read More
posted @ 2013-01-28 10:23 baiqjh Views(205) Comments(0) Diggs(0) Edit
用过很多串口工具,感觉不是很好用,于是萌生自己写一个串口助手的想法。功能描述:1、可以自动识别电脑中存在的串口2、可以十六进制数和字符混合发送3、可以做虚拟应答器(相当于虚拟一个仪器,收到正确指令后,自动回复指定数据)4、可以自定义波特率虚拟应答:可以根据特定的命令应答,比如下面COM4口,当COM4口收到指令 abc 时,会自动应答 efg。应答规则可以自定义。测试虚拟应答:用COM3发送指令 abc,COM4自动应答 efg注意:我电脑的COM3和COM4口是连起来的,可以通讯的。提示:利用某些软件可以做到两个串口的关联。 Read More
posted @ 2013-01-17 14:00 baiqjh Views(769) Comments(3) Diggs(2) Edit
备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的哪些内部状态。 class Originator { private string state; public string State { get { return state; ... Read More
posted @ 2013-01-10 14:06 baiqjh Views(127) Comments(0) Diggs(0) Edit
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Target (这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口) class Target { public virtual void Request() { Console.WriteLine("普通请求!"); } }Adaptee (需要适配的类) class Adaptee { public void Specifi... Read More
posted @ 2013-01-10 13:12 baiqjh Views(129) Comments(0) Diggs(0) Edit
解释器模式(interpreter):给定一个语言,定义它的方法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。Context命令类,包含解释器之外的一些全局信息。 class Context { private string _input; public string Input { get { return _input; } set { _input = value; } } private string _output; pu... Read More
posted @ 2013-01-05 17:38 baiqjh Views(136) Comments(0) Diggs(0) Edit
User表和Department表 class User { private int _id; public int Id { get { return _id; } set { _id = value; } } private string _name; public string Name { get { return _name; } set { _name = value; } ... Read More
posted @ 2013-01-04 17:27 baiqjh Views(352) Comments(0) Diggs(0) Edit
//十进制转二进制Console.WriteLine(Convert.ToString(69, 2));//十进制转八进制Console.WriteLine(Convert.ToString(69, 8));//十进制转十六进制Console.WriteLine(Convert.ToString(69, 16));//二进制转十进制Console.WriteLine(Convert.ToInt32(”100111101″, 2));//八进制转十进制Console.WriteLine(Convert.ToInt32(”76″, 8));//C# 16进制转换10进制Console.WriteL Read More
posted @ 2013-01-04 16:43 baiqjh Views(266) Comments(2) Diggs(0) Edit
外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一个子系统更加容易使用。子系统 class SubSystemOne { public void MethodOne() { Console.WriteLine("方法一"); } } class SubSystemTwo { public void MethodTwo() { Console.WriteLine("方法二"); } ... Read More
posted @ 2013-01-04 11:51 baiqjh Views(138) Comments(0) Diggs(0) Edit
模板方法模式(TempateMethod):定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构重定义该算法的某些特定步骤。AbstractClass是抽象类,也就是一抽象模板,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也可能调用一些具体方法。 abstract class AbstractClass { //一些抽象行为,放到子类去实现 public abstract void PrimitiveOperat... Read More
posted @ 2013-01-04 11:12 baiqjh Views(166) Comments(0) Diggs(0) Edit
雷锋类 class LeiFeng { public void Sweep() { System.Windows.Forms.MessageBox.Show("扫地"); } public void Wash() { System.Windows.Forms.MessageBox.Show("洗衣"); } } class Undergraduate : LeiFeng { } class Volunteer : LeiFeng ... Read More
posted @ 2013-01-04 09:18 baiqjh Views(143) Comments(0) Diggs(0) Edit