zoukankan      html  css  js  c++  java
  • Spring5核心源码-第1章 软件架构设计原理

    Spring5核心源码

    第1章 软件架构设计原理

    1.1 开闭原则(Open-Close Principle,OCP)

    针对扩展开放、对修改关闭 JavaDiscountCourse→JavaCourse→ICourse

    1.2 依赖倒置原则(Dependence Inversion Principle,DIP)

    高层模块不能依赖底层模块,二者都不能依赖其抽象。抽象不能依赖细节,细节应该依赖抽象。目的就是减少耦合。

    123
    参数注入方法 构造器方法 Setter方法

    以抽象为基准比以细节为基准搭建起来的架构要稳定的多。

    1.3 单一职责原则(Simple Responsibility Principle,SRP)

    不要存在多于一个导致类变更的原因。

    1.4 接口隔离原则(Interface Segregation Principle,ISP)

    使用多个专用接口,而不使用单一总接口,客户端不应该依赖它不需要的接口。

    序号要求核心要点
    1 一个类对另一个类的依赖应该建立在最小接口之上 最小接口
    2 建立单一接口,不要建立庞大臃肿的接口 精简接口
    3 尽量细化接口,接口中的方法尽量少 细化接口

    高内聚、低耦合的设计思想,使类具有可读性、扩展性和可维护性。

    1.5 迪米特原则(Law of Demeter,LoD)

    一个对象应该对其他对象保持最少的了解,又叫最少知道原理(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合度。 迪米特原理强调只和朋友交流,不和陌生人说话。

    1.6 里氏替换原则(Liskv Substitution Principle,LSP)【困难!!!】

    一个软件实体如果适用于一个父类,那么一定适用于其子类,所有引用父类的地方必须能透明地使用其子类的对象,子类对象能够替换父类对象,二程序逻辑不变。

    优点:
    ①约束继承泛滥,是一种开闭原则的体现;
    ②加强程序的健壮性,同时变更时也可以做到很好的兼容性,提高程序的可维护性和扩展性,降低需求变更时引入的风险。

    1.7 合成复用原则(Composite/Aggregate Reuse Principle,CARP)

    尽量使用对象组合(has-a)/聚合(contanis-a)而不是继承关系达到软件复用的目的。 继承叫做白箱复用,组合/聚合相当于黑箱复用。

  • 相关阅读:
    终于干掉了默认的输入法, 关于ctfmon.exe文件
    新工作一周的一些记录
    派送Maxthon 2.0 社区预览版本邀请.
    终于决定要跳槽了.
    当QA推出免责条款, 你会怎么看?
    Post by Word 2007, Test. 用word2007来发表一篇随笔.
    一个好的点菜系统
    再见2006
    昨天的实况以及忽悠姐妹花
    在公司我最近都只喝矿泉水
  • 原文地址:https://www.cnblogs.com/Mufasa/p/13409250.html
Copyright © 2011-2022 走看看