|
OOP面向对象:Liskov替换原则--LSP ‘phpma开源
一、LSP简介(LSP--Liskov Substitution Principle):phpma开源 定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型。 子类型必须能够替换它的基类型。LSP又称里氏替换原则。 对于这个原则,通俗一些的理解就是,父类的方法都要在子类中实现或者重写。 二、举例说明: 对于依赖倒置原则,说的是父类不能依赖子类,它们都要依赖抽象类。这种依赖是我们实现代码扩展和运行期内绑定(多态)的基础。因为一旦类的使用者依赖某个具体的类,那么对该依赖的扩展就无从谈起;而依赖某个抽象类,则只要实现了该抽象类的子类,都可以被类的使用者使用,从而实现了系统的扩展。phpma开源 但是,光有依赖倒置原则,并不一定就使我们的代码真正具有良好的扩展性和运行期内绑定。请看下面的代码: public class Animal { private string name; public Animal(string name) { this.name = name; } public void Description() { Console.WriteLine("This is a(an) " + name); } } //下面是它的子类猫类:phpma开源 public class Cat : Animal { public Cat(string name) { } public void Mew() { Console.WriteLine("The cat is saying like 'mew'"); } } //下面是它的子类狗类:phpma开源 public class Dog : Animal { public Dog(string name) { } public void Bark() { Console.WriteLine("The dog is saying like 'bark'"); } }
(阅读次数:)
共2页: 上一页 1 [2] 下一页
|