?低层模块尽量都要有抽象类或接口,或者两者都有。 ?变量的声明类型尽量是抽象类或接口。 ?使用继承时遵循里氏替换原则。
分类:
其他好文 时间:
2016-02-25 15:14:06
阅读次数:
112
里氏替换原则 我们知道子类对象可以赋给父类对象,也可以说子类对象可以完全替换父类对象并出现在父类对象可以出现的任何地方,且程序的行为不会发生改变,但反过来父类对象是不能替换子类对象的!比如汽车类对象就不能替换卡车类对象(虽然卡车也是汽车),因为汽车包含的范围比卡车要大,它也可以是私家车! 这种特性就...
分类:
其他好文 时间:
2016-02-24 19:15:09
阅读次数:
130
?子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 ?子类中可以增加自己特有的方法。 ?当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。 ?当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
分类:
其他好文 时间:
2016-02-24 19:14:06
阅读次数:
150
面向对象的五大基本原则单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP) 单一职责原则(SRP) ? 一个类应该仅有一个引起它变化的原因(最简单,最容易理解却最不容易做到的一个设计原则)职员类例子: 比如在职员类里,将工程师、销售人员
分类:
其他好文 时间:
2016-02-19 14:20:33
阅读次数:
227
面向对象的五大基本原则单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP) 单一职责原则(SRP) ? 一个类应该仅有一个引起它变化的原因(最简单,最容易理解却最不容易做到的一个设计原则)职员类例子: 比如在职员类里,将工程师、销售人员
分类:
其他好文 时间:
2016-02-18 22:47:33
阅读次数:
240
以自己非常简单的理解来定义这六大原则。 一: 单一职责: 实现类要职责单一,一个类只有一个可以引起变化的因素; 二: 里氏替换原则: 子类可以扩展父类的功能,但不能改变父类原有的功能。即不能破坏原有的继承体系; 三: 依赖倒置原则: 面向接口的编程; 四: 接口隔离原则: 设计接口要精简单一,针对接
分类:
其他好文 时间:
2016-02-02 17:53:57
阅读次数:
122
第二十四章、桥接模式
桥接模式也称为桥梁模式,是结构型设计模式之一。桥接模式中体现了“单一职责原则”、“开闭原则”、“里氏替换原则”、“依赖倒置原则”等。同时它也是很实用的一种模式。...
分类:
移动开发 时间:
2016-01-22 11:03:33
阅读次数:
193
一、什么是里氏替换原则
里氏替换原则的严格表达是:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。换言之,一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。比如,假设有两个类,一个是Base类,另一个是Child类,并且...
分类:
其他好文 时间:
2015-11-28 13:38:22
阅读次数:
229
1)说明:C#中在使用继承的过程中可能会出现子类对象转换为父类类型使用的情况,这个过程就叫做里氏替换原则。多用于将子类对象作为实参传入形参为父类类型的方法中,进而实现“多态”。2)扩展:在C++中亦叫做“赋值兼容性原则”,同样是实现多态的主要途径,其原理是通过虚函数表与VPTR指针实现“迟绑定”,进...
分类:
其他好文 时间:
2015-11-26 16:53:27
阅读次数:
127
关于OOD中的里氏替换原则,大家耳熟能祥了,不再展开,可以参考设计模式的六大设计原则之里氏替换原则。这里尝试讨论常常违反的两种形式和解决方案。违反里氏替换原则的根源是对子类及父类关系不明确。我们在设计继承关系常常受一些主观认识的左右,比如Robert C. Martin提到的线段与线的关系,以及被大...
分类:
其他好文 时间:
2015-11-10 13:46:17
阅读次数:
265