12 2012 档案
[设计模式原则]第六回:开放封闭原则
摘要:1.引言开放封闭原则(OCP,Open Clase Principle)是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化,降低耦合,而开放封闭原则正是对这一目标的最直接的体现。其它原则很多时候都是为了实现这一目标服务的,如 里氏替换原则。2.引经据典核心思想:软件实体应该是可扩展,而不是可修改。也就是说,对扩展开放,而对修改是封闭的。具体体现:对扩展开放,意味着有新需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。实现开放封闭原则的核心思想就是对抽象编程,而不是对具体编程,因为抽象是相对稳定的。让
阅读全文
[设计模式原则]第五回:迪米特原则
摘要:1.引言迪米特法则(Law of Demeter)又叫作最少知识原则(LKP,Least Knowledge Principle),就是说一个对象应当对其他对象有尽可能少的了解,类与类之间的了解的越多,关系越密切,耦合度越大,当一个类发生改变时,另一个类也可能发生变化。2.引经据典核心思想:最少依赖具体体现:类内部应该高内聚,设置相应的权限,有选择的暴露方法,这就是封装的奥秘。类的依赖关系尽量减少,保持简单和独立,降低耦合。一些理解,有些东西,可以适当的知道,知道的太多对你不好。关系越复杂,人越不敢接近你。要达到很高的内修养,才能有很好的表现。这些江湖术语都包含一些哲理。3.应用反思 /...
阅读全文
值对象共享(2)
摘要:1.引言上一篇文章介绍了对象驻留,请查考值对象共享 。 string驻留,还是对象共享都必须要进行对象判等,以一定的规则进行比较,相同的就归为同一个引用名下。对象判等就应该要查考Object的判断方法了。2.判等认识一下System.Object类中实现的几个对象判等方法,它们是:public virtual bool Equals(object obj) 虚方法,比较对象实例是否相等public static bool Equals(object objA, object objB) 静态方法,比较对象实例是否相等public static bool ReferenceEquals(obje
阅读全文
[设计模式原则]第四回:里氏替换原则
摘要:1.引言里氏替换原则(LSP,Liskov Substitution Principle)是关于继承机制的原则,是实现开放封闭原则的具体规范,违反了里氏替换原则必然违反了开放封闭原则。2.引经据典核心思想:子类必须能够替换其基类。一些理解子类继承基类,是一种IS-A关系,只能说子类 IS-A 基类,不能反过来,该原则说的就是处理继承问题的原则。父类的非抽象方法,不应该被子类重写,重写了就会改变原来父类的方法,造成意想不到的结果,就不能完全代表父类了,如果有意要子类重写请声明虚方法或者抽象方法。3.应用反思//开关 public class Switch { ...
阅读全文
值对象共享
摘要:1.引言由于string使用频繁,所以微软把它实现像值类型那样方便,甚至有string驻留机制,声明相同的字符串可以指向相同的托管堆内存,这样就可以提供内存的利用率。如果有一种class类型,它只是用来表示一些特征、一些描述信息、一些数据的存储,但是它们声明了就不会去改变这个对象里面的值,那么这种类型的对象就是值对象,这样的对象就可以共享,因为它不可变。2.驻留方式string有驻留方式,值对象就跟值类型和string一样,不可变,以至于值对象可以进行共享,如果值对象也能够以驻留方式进行创建,那就可以轻松实现共享,如下例子: public class User { p...
阅读全文
[设计模式原则]第三回:接口隔离原则
摘要:1.引言现实中有这样一种情况,火车站窗口总是挤满了排队的人,而排队的人并非都是为了买票,有的 是咨询,有的是退票,但都必须排在这一长长的队伍中,显然安排不同的窗口处理不同的业务会大大提高效率。同样,软件设计中,胖接口强调所有的继承的类必须实现所有的方法,而有些实现的方法并非有用,这种情况对接口来说就是一种让费,而接口隔离原则(ISP,Interface Segregation Priciple)正是应对这种情况的设计标准。2.引经据典核心思想:使用多个小的专门接口,而不要使用一个大的总接口。具体而言:接口应该是内聚的,应该避免出现胖接口。一个类对另一个类的依赖应该建立在最小的接口上,不要强迫依
阅读全文
[设计模式原则]第二回:依赖倒置原则
摘要:1.引言著名好莱坞法则:不要调用我们,我们会调用你。这是对依赖倒置原则(DIP,Dependency Inversion Principle)最形象的诠释,通过抽象机制有效解决类层次之间的关系,降低耦合的粒度,实现对抽象的依赖是依赖倒置的核心思想。2.引经据典核心思想:依赖于抽象具体体现在:高层模块不应该依赖于低层模块,二者都应该依赖于抽象。抽象不应该依赖于具体,具体应该依赖于抽象。上面两点也就是解决方案,依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定的多。依赖倒置原则的应用可以更好的维护和扩展。3.应用反思上节 设计模式原则]第一回:单一职责原则 中提到的例子,我们来应用
阅读全文
[设计模式原则]第一回:单一职责原则
摘要:1.引言单一职责原则(SRP,Single Responsibility Principle),强调的是职责分离,在某种程度上是对职责的理解是构成了不同类之间的耦合关系的设计关键。2.引经据典核心思想:一个类最好只做一件事,只有一个引起它变化的原因。单一职责原则可以看成是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少变化的原因。职责过多,变化的原因也就多,将导致职责之间的依赖,互相产生影响,从而极大的损伤其内聚性和耦合度。一些理解:所说的职责一般指功能,然而单一职责原则是由引起变化的原因决定,并非职责决定,这个要引起重视,不要会错意了。一个类最好只做一件事
阅读全文
浙公网安备 33010602011771号