博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  c#

桌面程序编写中的经验
摘要:一、解释器模式 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用:当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。缺点:解释器模式为文法中的每一条规则至少定义了一个类,因此包含许多规则的文法可能难以管理和... 阅读全文

posted @ 2015-09-27 14:00 shanymen 阅读(541) 评论(0) 推荐(0)

摘要:一、中介者模式 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互;中介者负责控制和协调一组对象之间的交互,充当一个中介以使组中的对象不再相互显式引用。优点:Mediator的出现减少了各个Colleague的耦合,使得可以独... 阅读全文

posted @ 2015-09-26 21:41 shanymen 阅读(507) 评论(0) 推荐(0)

摘要:一、模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势;提供了一个很好的代码复用平台。 模板方法模式由一个抽象类组成,这个抽象类定义了... 阅读全文

posted @ 2015-09-23 21:56 shanymen 阅读(361) 评论(0) 推荐(0)

摘要:一、观察者模式 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式的关键对象是主题Subject和观察者Observer,一个Subject可以有任意数目的依赖它的Observer,一旦Subject的状态发生了改变,所有的Observer都可以得到通知。 ... 阅读全文

posted @ 2015-09-23 21:24 shanymen 阅读(198) 评论(0) 推荐(0)

摘要:一、观察者模式 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式的关键对象是主题Subject和观察者Observer,一个Subject可以有任意数目的依赖它的Observer,一旦Subj... 阅读全文

posted @ 2015-09-23 21:16 shanymen 阅读(374) 评论(0) 推荐(0)

摘要:一、装饰模式 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式是利用SetComponent来对对象进行包装的,这样每个装饰对象的实现就和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象链中。 如果只有一个ConcreteC... 阅读全文

posted @ 2015-09-21 22:17 shanymen 阅读(610) 评论(0) 推荐(0)

摘要:一、适配器模式 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用:系统的数据和行为都正确,但接口不相符时;目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。 C#中最重要的适配器:DataAda... 阅读全文

posted @ 2015-09-21 20:55 shanymen 阅读(1268) 评论(0) 推荐(0)

摘要:一、建造者模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。 指挥者这个类用来控制建造过程,也用来隔离用户与建造... 阅读全文

posted @ 2015-09-18 23:30 shanymen 阅读(643) 评论(0) 推荐(1)

摘要:创建类模式隐藏了这些类的实例是如何被创建和放在一起,整个系统关于这些对象所知道的是由抽象类所定义的接口;这样,创建类模式在创建了什么,谁创建它的,它怎么被创建的,以及何时创建这些方面提供了很大的灵活性。创建类模式抽象了实例化的过程,允许客户用结构和功能差别很大的“产品”对象配置一个系统配置可以... 阅读全文

posted @ 2015-09-17 21:54 shanymen 阅读(677) 评论(0) 推荐(0)

摘要:一、单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱他的设计,当变化发生时,设计会遭受到意想不到的破坏;软件设计真正要做的许多内容就是发现职责并把那些职责相互分离。 二、开放-封闭原则 软件实体应该可... 阅读全文

posted @ 2015-09-16 21:32 shanymen 阅读(2626) 评论(0) 推荐(0)

摘要:一、集合与泛型数组集合(ArrayList)泛型优点连续存储、快速从头到尾遍历和修改元素使用大小可按需动态增加类型安全;省去拆箱和装箱操作缺点创建时必须制定数组变量的大小; 两个元素之间添加元素比较困难类型不安全,接受所有类型的数据; 导致一直进行拆箱和装箱操作,带来很大的... 阅读全文

posted @ 2015-09-16 20:42 shanymen 阅读(350) 评论(0) 推荐(0)

摘要:一、抽象类c#允许把类和方法声明为abstract,即抽象类和抽象方法。抽象类不能实例化,抽象方法必须被子类重写,如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。抽象类拥有尽可能多的共同代码,尽可能少的数据。abstract class Animal ... 阅读全文

posted @ 2015-09-15 21:41 shanymen 阅读(414) 评论(0) 推荐(0)

摘要:一、封装良好的封装能够减少耦合;类内部的实现可以自由地修改;类具有清晰的对外接口。比如建立一个猫的类,再建立一个狗的类,这样也算封装,只是会出现大量相似代码。二、继承继承的出现是因为对象类中出现过多重复代码,为解决该问题而建立父类,将这部分代码放进父类中,由子类继承。子类继承父类的所有特性,同时可以... 阅读全文

posted @ 2015-09-14 22:10 shanymen 阅读(835) 评论(0) 推荐(0)

摘要:一、对象对象是一个自包含的实体,用一组可识别的特性和行为来标识,一切事物皆为对象。二、类类就是具有相同的属性和功能的对象的抽象的集合,比如“人”,“动物”。class Cat { public string Shout() { return "... 阅读全文

posted @ 2015-09-13 22:15 shanymen 阅读(961) 评论(1) 推荐(0)

摘要:使用模版生成Html时,在模版的源代码:$title$为标题替换代码,$content$ 为内容替换代码,自行设置需要替换的代码。 生成HTMLcs代码<table width="100%" border="0" bgcolor="#339900"> <tr> <td height="34" align="center" bgcolor="#FFFFFF">... 阅读全文

posted @ 2009-06-05 10:10 shanymen 阅读(470) 评论(0) 推荐(0)

摘要:定位字符串 string str="abcd" ; int m1=str.IndexOf("b"); //m1=1 int m2=str.IndexOf("cd"); //m2=2 int m3=str.IndexOf(""); //m3=0 int m4=str.IndexOf("w"); //m4=-1 格式化字符串 string str1=String.Format("(C) Currenc... 阅读全文

posted @ 2009-05-13 20:41 shanymen 阅读(376) 评论(0) 推荐(0)