美文网首页
面向对象的六大原则之里式替换原则

面向对象的六大原则之里式替换原则

作者: Android研究所 | 来源:发表于2020-02-02 11:54 被阅读0次

           里式替换原则定义:如果对每一个类型为S的对象O1,都有类型为T的对象O2,使得以T定义的所有程序P在所有对象O1都替换成O2时,程序P的行为没有任何变化。
           面向对象的三大特点是继承封装和多态,里式替换原则就是依赖于继承和多态这两大特性。里式替换原则通俗点就是说,只要父类出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或者一场。
           我们来看下window和View的关系,写一下示例代码帮助理解:

    /**
    *创建View抽象类
    */
    public abstract class View
      {
        public abstract void draw();
        public void measure(int width,int heigth){
            //测量视图大小
          }
      }
    
    /**
    *各种控件继承View来具体实现,不仅仅局限于一下两种控件
    */
    public class Button extends View{
        public void draw();
      }
    public class TextView extends View{
        public void draw();
      }
    /**
    *创建窗口类将View显示在屏幕上,这里使用View对象
    该类中任何继承了View类的对象都可以当参数,传递给show方法
    */
    public class Windows{
    
        public void show(View child)
          {
              child.draw()
          }
    }
    
    

           通过里式替换就可以自定义各种各样的View,然后传递给Window,Window负责组织View,并将View显示在用户屏幕上。我们来想一下上两篇文章的例子,MemoryCache、DiskCache、DoubleCache都可以替换ImageCache的工作,并且能够保证行为的正确性。这也是运用了里式替换原则。开闭原则和里式替换原则是生死相依,不离不弃的,通过里式替换来达到对扩展开放,对修改关闭的效果。这两个原则都同时强调了一个重要特性--抽象。因此开发过程中抽象是走向代码优化的重要一步。

    相关文章

      网友评论

          本文标题:面向对象的六大原则之里式替换原则

          本文链接:https://www.haomeiwen.com/subject/qgafxhtx.html