zoukankan      html  css  js  c++  java
  • 《设计模式之禅》学习笔记(四)

    第4章 接口隔离原则

    接口的两种类型:

    • 实例接口(Object Interface),在Java中声明一个类,然后用new关键字产生一个实例,它是对一个类型的事物的描述,就是一种接口。
    • 类接口(Class Interface),Java中经常使用的interface关键字定义的接口。

             

    定义:

    • 第一种定义:客户端不应该依赖它不需要的接口。

      客户端需要什么接口就提供什么接口,把不需要的接口剔除掉,那就需要对接口进行细化,保证其单纯性。

    • 第二种定义:类间的依赖关系应该建立在最小的接口上。

           

    与单一职责原则的区别:

    单一职责要求的是类和接口职责单一,注重的是职责,这是业务逻辑的划分,而接口隔离原则要求接口的方法尽量少。一个职责可能包含10个方法,这10个方法都放到一个接口中,但不同模块分别只访问其中几个,在系统外通过文档约束"不使用的方法",这是单一职责原则允许的,但按照接口隔离原则是不允许的。

           

    保证接口的纯洁性:

    • 接口要尽量小

      这是接口隔离原则的核心定义。但是"小"是有限度的,首先就是不能违反单一职责原则,已经做到单一职责的接口不应该再分。即,根据接口隔离原则拆分接口时,首先必须满足单一职责原则。

    • 接口要高内聚

      高内聚就是提高接口、类、模块的处理能力,减少对外的交互。具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺越少对系统的开发越有利,变更的风险也就越少,同时也有利于降低成本。

    • 定制服务

      定制服务就是单独为一个个体提供优良的服务。要求就是:只提供访问者需要的方法。

    • 接口设计是有限度的

      接口的设计粒度越小,系统越灵活。但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低。所以接口设计一定要注意适度。

             

    最佳实践:

    • 一个接口只服务于一个子模块或业务逻辑;
    • 通过业务逻辑研所接口中的public方法;
    • 已经被污染了的接口,尽量去修改,若更改的风险较大,则采用适配器模式进行转化处理;
    • 了解环境,拒绝盲从,深入了解业务逻辑才能设计出好接口。
  • 相关阅读:
    人人都是架构师:分布式系统架构落地与瓶颈突破
    Node.js区块链开发
    MDD:使用模型驱动开发方式进行快速开发(多图预警)
    MDSF:模型驱动开发(MDD)介绍 | 一群共同享有幸福生活的成长伙伴
    SLF4J with Logback in a Maven Project | Mograblog
    Spring MVC集成slf4j-logback
    SLF4J和Logback日志框架详解
    Python中国社区
    致远互联官网_致远软件_协同 _OA_OA系统_OA办公系统_协同管理软件及云服务领导供应商-致远软件官网
    新精英博客_公司博客_官方公告
  • 原文地址:https://www.cnblogs.com/qwertWZ/p/2835889.html
Copyright © 2011-2022 走看看