面向对象设计原则--里氏替换原则(LSP)

求:子类可以替换父类并且出现在父类能够出现的任何地方

这个原则也是在贯彻GOF倡导的面向接口编程!
在这个原则中父类应尽可能使用接口或者抽象类来实现!

子类通过实现了父类接口,能够替父类的使用地方!
通过这个原则,我们客户端在使用父类接口的时候,通过子类实现!
意思就是说我们依赖父类接口,在客户端声明一个父类接口,通过其子类来实现
这个时候就要求子类必须能够替换父类所出现的任何地方,这样做的好处就是,在根据新要求扩展父类接口的新子类的时候而不影响当前客户端的使用!
说到这,肯定会有人认为和上一篇讲的OCP的作用有点类似,其实这些面向对象的基本原则就2条:1面向接口编程,而不是面向实现 2用组合而不主张用继承!
这些基本的原则在实现方法也有个共同层次,就是使用中间接口层!以此来达到类对象的低偶合,也就是抽象偶合!

呵呵,不知道这样的表述是否能让人听明白!我总觉得对一个新事物的概念是否完全理解,最基本标准就是自己是否能够讲解的让自己明白!所以这些学习笔记中,我试图使自己作为一个老师的角色把对新事物的想法和心得描述出来,再让自己以一个学生的角度去试图理解它,如果能明白,就证实自己已经这个新事物有几分了解,至少没误解!  
展开阅读全文

没有更多推荐了,返回首页