zoukankan      html  css  js  c++  java
  • OO大原则

    2.1 OO原则综述

    2.1.1 引言

             好的设计,成就好的作品:僵化的设计,则会使你的作品大打折扣。在软件领域更是如此。Bob大叔在其《敏捷软件开发——原则、模式与实践》一书的序言中就讲到“美的东西比丑的东西创建起来更廉价,也更快捷。”可见追求美好的软件设计不光是代码优雅的问题,更关乎生产成本。对于软件架构的研究经历了很长时间的摸索,在面向过程到面向对象,从设计原则到设计模式,对于如何设计更好软件的探索,从未停止。技术大师总结了很多设计上的经典法则,后来者可以站在巨人的肩膀上尽情享受丰富而珍贵的经验。

             在第1章“OO大智慧”中,我们分析和讨论了面向对象技术的基本要素,对继承、封装、多态和接口等进行了基本的讨论,如何将这些基本技术应用的得心应手,是本章要阐释的问题和目标。面向对象的原则也正是如何使用继承、封装、多态和接口技术进行优良设计的原则总结和规律认识,因此这两掌的内容相辅相成,互为补充。

    2.1.2 原则综述

             本章将重点讲述最基本的5个设计原则,分别是:单一职责原则、开放封闭原则、依赖倒置原则、接口隔离原则和Liskov替换原则,在表2-1中列出了主要的一些面向对象设计原则及其简单描述,详细的分析将在本章各节逐步展开。

    2-1 设计原则

    设计原则

    英文表达

    说明

    单一职责原则

    SRPSingle Responsibility Principle

    一个类,应该仅有一个引起它变化的原因,不要将变化原因不同的职责封装在一起,而应该隔离。

    开放封闭原则

    OCPOpen Closed Principle

    软件实体应当对修改关闭,对扩展开放

    依赖倒置原则

    DIPDependency Inversion Principle

    依赖了抽象,而不要依赖于具体,因为抽象相对稳定

    接口隔离原则

    ISPInterface Segregation Principle

    尽量应用专门的接口,而不是单一的总接口,接口应该面向用户,将依赖建立在最小的接口上

    Liskov替换原则

    LSPLiskov Substitution Pinciple

    子类必须能够替换其基类

    合成/聚合复用原则

    CARPComposite/Aggregate Reuse Principle

    在新对象中聚合已有对象,使之成为新对象的成员,从而通过操作这些对象达到复用的目的。合成方式较继承方式耦合更松散,所以应该少继承、多聚合

    迪米特法则

    LoDLaw of Demeter

    又叫最小知识原则,指软件实体应该尽可能少的和其他软件实体发生相互作用

    在本书中,我们只对前5大原则进行系统论述,关于合成/聚合复用原则,在1.2节“什么是继承”中已经有相关的论述。

  • 相关阅读:
    Python拼接字符串的7种方法
    jieba结巴分词
    nginx配置文件的性能优化
    nginx默认的配置文件详解
    CentOS怎样安装Python3.6
    Scrapy爬去哪儿~上海一日游门票并存入MongoDB数据库
    Scrapy模拟登录GitHub
    Scrapy爬豆瓣电影Top250并存入MySQL数据库
    Scrapy爬博客园
    创建第一个Scrapy项目
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1748601.html
Copyright © 2011-2022 走看看