首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件架构设计原则--接口隔离原则

,ISP)是指用多个专门的接口,而不是用单一的总接口,客户端不应该依赖它不需要的接口。   ...这个原则知道我们在设计接口时应当注意以下几点: 一个类对另一个类的依赖应当建立在最小的接口上。 建立单一的接口,不要建立庞大臃肿的接口。...尽量细化解耦,接口中的方法尽量少(不是越少越好)   接口隔离原则符合我们常说的高内聚、低耦合的设计思想,可以使类具有很好的可读性、可扩展性和可维护性。...我们在设计接口的时候,要多花时间去思考,要考虑业务模型,包括对哟吼可能发生变更的地方还要做一些预判。   所以,对于抽象、对于业务模型的理解是非常中重要的。...那么这就不符合接口隔离原则了,怎么改进呢? 把三种行为拆分为三个接口,让每个动物实现他们各自需要的就行了。

24930

软件架构设计原则之接口隔离原则

本文节选自《设计模式就该这样学》 接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。...这个原则指导我们在设计接口时应当注意以下几点: (1)一个类对另一个类的依赖应该建立在最小的接口之上。 (2)建立单一接口,不要建立庞大臃肿的接口。...(3)尽量细化接口接口中的方法尽量少(不是越少越好,一定要适度)。 接口隔离原则符合我们常说的高内聚、低耦合的设计思想,可以使类具有很好的可读性、可扩展性和可维护性。...我们在设计接口的时候,要多花时间去思考,要考虑业务模型,包括对以后有可能发生变更的地方还要做一些预判。所以,对于抽象、对于业务模型的理解是非常重要的。...这时候,我们针对不同动物行为来设计不同的接口,分别设计IEatAnimal、IFlyAnimal和ISwimAnimal接口,来看代码。

55700
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    软件架构设计原则之接口隔离原则

    接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。...这个原则指导我们在设计接口时应当注意以下几点: (1)一个类对另一个类的依赖应该建立在最小的接口之上。 (2)建立单一接口,不要建立庞大臃肿的接口。...(3)尽量细化接口接口中的方法尽量少(不是越少越好,一定要适度)。 接口隔离原则符合我们常说的高内聚、低耦合的设计思想,可以使类具有很好的可读性、可扩展性和可维护性。...我们在设计接口的时候,要多花时间去思考,要考虑业务模型,包括对以后有可能发生变更的地方还要做一些预判。所以,对于抽象、对于业务模型的理解是非常重要的。...这时候,我们针对不同动物行为来设计不同的接口,分别设计IEatAnimal、IFlyAnimal和ISwimAnimal接口,来看代码。

    22510

    开放API接口_软件接口开放

    前言 在开发测试阶段,或者是在写Demo的时候,难免会用到一些测试数据,有时苦于没有可用的接口,需要自己动手去写,但是这样大大降低了效率,前期我也找了一些开放的接口,这篇文章整理一下,以下接口完全免费...API接口: https://www.juhe.cn/docs/api/id/21 全国WIFI接口: https://www.juhe.cn/docs/api/id/18 星座运势接口: https:...身份证查询API接口: https://www.juhe.cn/docs/api/id/38 笑话大全API接口: https://www.juhe.cn/docs/api/id/95 邮编查询接口:.../id/28 成语词典接口: https://www.juhe.cn/docs/api/id/157 新闻头条接口: https://www.juhe.cn/docs/api/id/235 IP地址接口...20条数据,多少页还不清楚,返回数据如图 后两个接口是我用Easy Mock写的,第一个接口一共3页,每一页有10条数据,page表示页码。

    2.1K20

    软件测试 | 接口自动化测试分层设计与实践总结

    本文以笔者当前使用的自动化测试项目为例,浅谈分层设计的思路,不涉及到具体的代码细节和某个框架的实现原理,重点关注在分层前后的使用对比,可能会以一些伪代码为例来说明举例。...接口测试三要素: 参数构造 发起请求,获取响应 校验结果一、原始状态当我们的用例没有进行分层设计的时候,只能算是一个“苗条式”的脚本。...重新封装的话还要再处理这一步,就有点麻烦且不符合我们的复用性设计了,因此我们对service层再细化为3层,分别为: apiObject: 单接口的预处理层,这一层主要作用是单接口入参的构造,接口的请求与响应值返回...实例演示: 这种利用原始参数(rawData)的方法我们称之为模板化,实际工作中有多种方式可实现,例如jsonpath、Mustache或者自己根据需求实现方法,本文重点在介绍分层设计,所以就不具体演示模板化技术的细节了...,仅说明设计此层的作用。

    1.5K30

    怎样设计接口

    怎样设计接口? 众所周知,接口是提供给其它模块或者系统使用的一种约定或者规范。因此接口必需要保 证足够的稳定性和易用性。这是设计接口的基本要求。...1.稳定性 接口必须相对稳定,否则将导致接口的使用者和提供者为了适应新接口而不断改动接口 的实现,可能反复进行无用功,严重时影响整个软件开发进度。那么怎样保证设计接口相 对稳定呢?...3.怎样设计接口? 採用OOD思想,即面向对象的思想,提供类接口或者COM接口。 对于C函数接口怎样设计呢?...事实上和C++接口设计原则一样,也採用面向对象的思想,仅仅是 将类设计成结构,公共的成员函数变为全局的函数,私有的成员函数变为static函数就可以。...函数接口的第一參数就相当于C++中的this指针就可以。 4.接口设计的其它要求 * 规范性:主要是接口设计的代码规范,这是最主要的要求。

    90130

    面向接口设计与角色接口

    标签 | 软件设计 字数 | 1876字 阅读 | 5分钟 问题:在做项目的时候,是不是所有包含非静态方法的类,都要写一个接口?是因为这样的目的是为了解耦,然后通过DI注入实现吗?...此外,如果你的接口永远都只有一个实现类,并没有任何可能的需求变化,那么还有必要解耦吗? 所以说,不能死板的将类的方法提取接口,然后美其名曰为面向接口设计。...我们不能误解“面向接口设计”原则,该原则所指的“接口”并非Java语言中的interface类型,而是指面向调用者对外暴露的接口,代表一种交互与协作,是对信息的隐藏和封装,而不是具体的interface...即使是普通的java方法仍然满足隐藏细节的原则,如果是public的,就可以认为该方法是“面向接口设计”中的接口,也就是说:不要针对实现细节编程,而是针对接口编程。...如果你先定义了一个类叫EmailService,然后因为你需要定义接口对其抽象,然后就简单地将这个类的所有公有方法都提取到抽象的接口中,这样设计接口,被Martin Fowler称为Header Interface

    70010

    设计模式】软件设计七大原则 ( 接口隔离原则 | 代码示例 )

    文章目录 一、接口隔离原则简介 二、接口隔离原则代码示例 ( 反面示例 ) 1、接口定义 ( 接口臃肿 ) 2、实现类 1 3、实现类 2 三、接口隔离原则代码示例 ( 推荐用法 ) 1、接口 1...2、接口 2 3、接口 3 4、接口 4 5、实现类 一、接口隔离原则简介 ---- 接口隔离原则 : 用 多个 专门的 接口 , 不使用 单一 的总接口 , 客户端 不应该依赖 它 不需要的 接口 ;...庞大 臃肿 的接口 ; 尽量细化接口 , 接口中的方法尽量少 ; 接口设计适度原则 : 接口隔离原则 中 最重要的就是 注意 适度原则 , 一定要适度 ; 接口设计的 过大 , 过小 , 都不合适 ;...设计接口时 , 多花时间去思考策划 ; 接口方法 尽量少 , 但要有限度 , 对接口进行细化 , 肯定能 提高系统设计的灵活性 , 但是如果 接口设计的过小 , 方法过少 , 则会 造成接口数量过多..., 提高整个程序设计的复杂性 ; 接口隔离原则 优点 : 符合 高内聚 , 低耦合 的 设计思想 , 使得类具有很好的 可读性 , 可扩展性 , 可维护性 ; 降低耦合 : 平时设计接口时 , 只暴露客户端需要的方法

    40930

    SDK设计心得之接口设计

    由于SDK的特殊性,所以对于SDK的开发来说,一开始对于SDK的一些通用的整体的元素的设计至关重要。因为SDK(尤其很多平台SDK,使用的应用成百上千)一个及其细微的调整都会影响很多开发者的版本周期。...因此前期的设计显得尤为重要。关于这部分内容,我会分两篇来介绍,这篇重点介绍具体接口设计。另一篇SDK设计心得之架构和资源将重点介绍SDK的架构和一些资源的使用方式。...关于接口设计 设计原则 接口名称、参数名称要足够清晰 一个牛逼的接口名称可以替代无数的注释 一个接口只做一件事 一个接口只做一件事。...我们有个功能有两个接口:一个是需要传参数,另一个不需要传参,两者的逻辑完全是独立的。本来是根据第一个原则设计了两个信、达也算雅的接口来实现。...其实这里游戏反映接入成本高,我们应该是去分析什么原因引起的接口成本身高,能不能优化。不能直观的认为一个功能要两个接口接口太多了接入成本就高,就要删接口

    6.4K90

    API接口TOKEN设计

    API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。...; 针对以上特点,移动端与服务端的通信就需要两种不同的TOKEN,一种针对接口的api_token,一种针对用户的user_token; 一.api_token 它的职责是保持接口访问的隐蔽性和有效性...加密密钥'为私有的加密密钥,手机端需要在服务端注册一个“接口使用者”账号后,系统会分配一个账号及密码,数据表设计参考如下: 字段名及字段类型 client_id varchar(20) 客户端ID client_secret...= md5('用户的uid' + 'Unix时间戳') = etye0fgkgk4ca2ttdsl0ae9a5dd77471fgf 服务端用数据表维护user_token的状态,表设计如下: 字段名及字段类型如下...; 接口用例如下:添加测试接口 URL: http://www.api.com/demo/index/add-demo?

    5.3K140

    如何设计api接口

    随着前后端的分离,api 接口变得越来越重要,作为前后端通信的接口,api 变得非常重要,而且它的设计也是非常难以掌握。不仅要考虑安全性,还要考虑可维护性,以及今后的升级等等。...如何才能设计出更好的 api 接口,我认为以下几点需要注意。 接口一致性 这里说的一致性指的是编码规范要统一,不能各个接口使用不一样的编码风格。...接口健康性检查 我们应该设计一个监控系统或者一个接口来实时监控我们的服务,如果接口出现了问题,我们应该能够第一时间发现,同样,对于每个接口的访问请求我们都要有日志记录的存储。...尽量采用restful风格 虽然restful风格被一些人质疑,但是目前来看,它还是最好的接口设计风格,通过采用restful风格,可以让接口语义更加明确 ,规范,优雅省去了大部分 无意义的沟通,通过使用不同的...提供完整详细的api文档 无论我们的接口设计的多么规范,多么易懂,我们都需要提供一份完整的api文档,同时我们还需要提供一些请求范例,这样用户在使用的时候才会更加清楚,也能避免一些错误的请求。

    86750

    接口用例设计

    背景说明 一个系统可为其他系统提供能力或者直接为UI层提供数据,在设计系统测试方案时应考虑上游调用的各种场景,不仅考虑顺利且正向思维操作的场景,还应逆向的场景。...换句话来说,使用契约式设计的方式,运行前条件必须满足,参数不正确不可运行;运行中内部状态必须不变;运行后结果必须保持一致。...在设计接口用例设计时,除实现功能外,应关注:幂等性、空校验、流程节点限制、异常校验。 ? 01 幂等性 何为幂等性? 幂等为一数学概念,指使用相同参数重复执行,能获取相同结果。...对非空参数依次传空,观察接口调用情况。 当然,首先需明白业务逻辑,从而进行用例设计。尤其对于参数复杂的接口,当某一条调用规则下 某些非空参数就需要作为必传了。...明确系统的状态流转,一个系统设计初期就需明确功能及状态流转,会依据产品对系统的定义及依赖的下游或三方产品的功能。 测试正常流程节点。按照正向流程依次调用,观察调用结果及生成状态。

    1.7K31

    API接口TOKEN设计

    API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。...; 针对以上特点,移动端与服务端的通信就需要两种不同的TOKEN,一种针对接口的api_token,一种针对用户的user_token; 一.api_token 它的职责是保持接口访问的隐蔽性和有效性...加密密钥'为私有的加密密钥,手机端需要在服务端注册一个“接口使用者”账号后,系统会分配一个账号及密码,数据表设计参考如下: 字段名及字段类型 client_id varchar(20) 客户端ID client_secret...= md5('用户的uid' + 'Unix时间戳') = etye0fgkgk4ca2ttdsl0ae9a5dd77471fgf 服务端用数据表维护user_token的状态,表设计如下: 字段名及字段类型如下...; 接口用例如下:添加测试接口 URL: http://www.api.com/demo/index/add-demo?

    1.4K30

    软件接口:走向何方

    硬件/软件接口(简称为"HSI")是一个术语,用来描述 SoC 外围设备的配置和功能,以及它们如何与CPU交互。...仅仅基于这一点,就很容易看出为什么所有问题中有一半以上可以直接与硬件/软件接口联系起来。 同样复杂的是,许多公司都有自己独特的针对 SoC 的挑战和要求。...除了设备驱动程序、固件和硬件验证等因素外,还需要考虑技术文档、诊断、应用软件、硬件设计等等。...最后,医疗是一个硬件/软件接口非常重要的领域,因为遵守某些要求对于任务至关重要。 此外,他们也都把他们自己独特的要求放在 HSI 层本身上,影响了如何实现某些因素以及未来的情况。...这一领域的进步,IDesignSpec 只是众多例子中的一个,使得人们有可能改变他们对于 HSI 的看法变得更好 硬件 / 软件接口背后的想法确实有很长的路要走,而且他们还有很长的路要走。

    1.2K50
    领券