zoukankan      html  css  js  c++  java
  • 面向对象设计的七大基本原则

    #单一职责原则

    定义:一个类只负责一个功能领域中的相应职责(就一个类而言,应该只有一个引起它变化的原因)

    是实现高内聚,低耦合的指导方针

    #开闭原则

    定义:一个软件实体应对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

    为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。

    #里氏代换原则

    定义:所有引用基类的地方必须能透明地使用其子类的对象

    是实现开闭原则的重要方式之一

    #依赖倒转原则

    定义:抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

    依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类。即使用接口和抽象类进行变量类型声明,参数类型声明,方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。

    在大多数情况下,开闭,里氏代换,依赖倒转三个原则会同事出现,开闭是目标,里氏代换是基础,依赖倒转是手段。

    #接口隔离

    当一个接口太大时,我们需要将它分割成一些更细小的接口

    将大接口中的方法根据其职责不同分别放在不同的小接口中,以确保每个接口使用都很方便,并承担某一个单一角色。

    接口应该尽量细化,同时接口中的方法应该尽量少,每个接口中只包含一个客户端(如子模块或业务逻辑类)所需的方法即可(定制服务)。

     接口也不能太少,会导致接口泛滥。

    #合成复用

    复用时要尽量使用组合/聚合关系(关联关系),少用继承

    组合可以使系统更灵活,降低类与类的耦合度,一个类的变化对其他类造成的影响相对较少。

    使用继承时,需要严格遵守里氏代换原则。

    #迪米特法则(最少知道原则)

    `不要和“陌生人”说话,只与直接朋友通信`

    引入一个合理的第三者,来降低现有对象的耦合度。

  • 相关阅读:
    我来教你用AWS IoT.Part1--配置和接入
    Netty进行文件传输
    Spring Security-利用URL地址进行权限控制
    Java开发工作中常见问题
    java进阶学习计划
    spring cloud常用注解及关键类
    系统设计-电商排名
    java实现十大经典算法
    JDK8如何写出优雅代码
    Java实现迷宫和八皇后
  • 原文地址:https://www.cnblogs.com/zhulin-jun/p/5987957.html
Copyright © 2011-2022 走看看