zoukankan      html  css  js  c++  java
  • 聊聊面向对象的设计原则

    面向对象的初衷是应对需求变化、简化设计,提升组件复用性,使系统更稳定、易扩展易维护,而不是让系统更复杂,只开发写一次代码,重复造乱子。

    1. 开闭原则:对扩展开放,对修改关闭,是面向对象的目标原则,是最终想达到的状态。因为对修改关闭,所以原有功能稳定不会被改出新问题,因为扩展开放,所以可以新增功能应对需求变更。
    2. 里氏替换原则:子类替换父类,凡是父类或接口出现的地方都可以用它的子类或实现楼代替,它体现了继承的思想,正因为它才能复用代码使开闭原则有了实现的可能。
    3. 依赖倒置原则:具体依赖抽象,高层、低层依赖接口,它是实现开闭原则的主要手段。有了它才好做到对修改关闭,对扩展开放。
    4. 接口隔离原则:客户端不应依赖它不需要的接口,类间的依赖关系应建立在最小的接口上。接口隔离原则将非常庞大、臃肿的接口拆分成为更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。接口隔离原则的目的是系统解开耦合,从而容易重构、更改和重新部署。
    5. 迪米特法则:一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现、如何复杂都与调用者或者依赖者没关系,调用者或者依赖者只需要知道他需要的方法即可,其他的我一概不关心。类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。
    6. 单一职责原则:一个类应该只有一个引起它变化的原因。
    7. 组合继承原则:尽可能多用组合、少用继承。后者是编译时静态绑定,后者可以运行时动态确定,更灵活易扩展。

  • 相关阅读:
    Lucene学习总结之二:Lucene的总体架构
    Lucene学习总结之三:Lucene的索引文件格式(1)
    android开发_SeekBar进度条
    android开发_mp3_player音乐播放器
    Lucene学习总结之一:全文检索的基本原理
    android开发_Intent_requestCode_resultCode页面之间的跳转
    android开发_Location位置定位
    .NET Remoting Basic(7)信道
    .NET Remoting Basic(1)概览
    .NET Remoting Basic(5)多服务器访问和程序集共享
  • 原文地址:https://www.cnblogs.com/doit8791/p/8661606.html
Copyright © 2011-2022 走看看