Android源码设计模式解析与实战——面向对象六大原则(一)

面向对象的六大原则

1:优化代码的第一步——单一职责原则(Single Responsibility Principle)SRP

     简单来说, 一个类中应该是一组相关性很高的函数、数据的封装

2:让程序更稳当、更灵活——开闭原则(Open Close Principle)OCP

     软件中的对象(类、模块、函数等 )应该对于扩展是开放的,但是,对于修改是封闭的。

3:构建扩展性更好的系统——里氏替换原则(Liskov Substitution Principle)LSP

      所有引用基类的地方必须能透明地使用其子类的对象。
      面向对象的语言的三大特点:继承、封装、多态,里氏替换原则就是依赖于继承和多态。
      通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误和异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。其实最终总结就两个字:抽象。
      里氏替换原则的核心原理是抽象,抽象又依赖于继承这个特性。

开闭原则里氏替换原则往往是生死相依、不离不弃的,通过里氏替换来达到对扩展开放,对修改关闭的效果。然而,这两个原则都同时强调了一个OOP的重要特性——抽象,因此,在开发过程中国运用抽象是走向代码优化的重要一步。

4:让项目拥有变化的能力——依赖倒置原则(Dependence Inversion Principle)DIP

     依赖倒置(依赖反转)原则有以下几个关键点:
     (1)高层模块不应该依赖低层模块,两者都应该依赖其抽象;
     (2)抽象不应该依赖细节;
     (3)细节应该依赖抽象。
      在Java语言中, 抽象就是指 接口或者抽象类,两者都是 不能直接被实例化的; 细节就是 实现类实现接口或者继续抽象类而产生的类就是细节,其特点就是,可以直接被实例化,也就是可以加上一个New产生一个对象。 高层模块就是调用端, 低层模块就是具体实现类。
        依赖倒置原则在Java语言中的表现是: 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的。其实就是面向抽象编程,这里的抽象是指接口或抽象类。
      一句话:依赖抽象 ,不依赖具体实现。

5:系统有更高的灵活性——接口隔离原则(Interface Segregation Principle)ISP

      定义是:类间的依赖关系应该建立在最小的接口上。用最小化接口隔离实现类的细节。
     目的是:系统解开耦合,从而容易重构、更改和重新部署。

6:更好的可扩展性——迪米特原则(Law of Demeter)LOD,也称最少知识原则(Least Knowledge Principle)

     定义是: 一个对象应该对其他对象有最少的了解。
     通俗地讲:一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现与调用者或者依赖者没关系,调用者或者依赖者只需要知道它需要的方法即可,其他的一概不用管。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值