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

接口设计原则

注:在类中调用其他类时务必要使用父类或接口,如果不能使用父类或接口,则说明类的设计已经违背了LSP原则。 三....接口隔离原则: 接口这里指用interface关键字定义的接口。...保证接口的纯结性: 接口要尽量小。 接口要高内聚。 定制服务。 接口设计是有限度的。 最佳实践: 一个接口只服务于一个子模块或业务逻辑。...通过业务逻辑压缩接口中的public方法,接口时常去回顾,尽量让接口达到“满身筋骨肉”,而不是“肥嘟嘟”的一堆方法。...已经被污染了的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理。 了解环境,拒绝盲从。每个项目或产品都有特定的环境因素,不要盲从大师的设计,要根据业务逻辑进行最好的接口设计

5.3K30

6设计原则之接口隔离原则

接口隔离原则的定义 什么是接口....实例接口,比如定义了一个Person类,然后 Person p = new Pserson(); 产生一个实例,Person类就是 p 的接口接口,就是Java中使用 interface 定义的接口...在使用时的时候通过接口调用.接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系统的灵活性和可维护性....定制服务,定制服务就是单独为一个个体提供优良的服务,只提供访问者需要的方法 接口设计是有限度的,接口设计粒度越小,系统越灵活.但是,灵活的同时也带来了结构的复杂化,开发难度增加,可维护性降低,所以接口设计一定要注意适度.... ---- 接口隔离原则就是对接口的定义,同时也是对类的定义,接口和类尽量使用原子接口或原子类来组装.

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

    【程序设计】6设计原则之接口隔离原则

    背景: 在实际的业务开发中往往会因为初期的设计不合理,使得接口中定义了众多方法,而这些接口在实现类中又并不需要全部实现。...这样的接口定义是不利于扩展的,也将对后期的维护带来困扰,我们将通过示例来演示符合接口隔离原则带来的好处。...概念: 接口隔离原则的定义: 客户端不应该被迫依赖于它不适用的方法 接口隔离原则的要求: 将臃肿庞大的接口拆分成更小的和更加具体的接口,保证客户端只得到自己需要的方法 案例: 需求: 设计HomePage...再比如说通过Sql来操作数据库的时候,对数据库的操作往往都包括,打开数据库,连接数据库,关闭数据库,往数据库添加数据,删除数据,更新数据和查询数据,同样都是对数据库的操作但往往这些操作会大致的分成两类来进行设计...按照合理的设计进行符合接口隔离原则的拆分对实现代码高内聚,低耦合将变得尤为重要。

    26320

    设计模式 ☞ 七设计原则之接口隔离原则

    过大的接口里面通常放置许多不用的方法,当实现这个接口的时候,被迫设计冗余的代码  ⑤ 如果接口的粒度大小定义合理,能够保证系统的稳定性;但是,如果定义过小,则会造成接口数量过多,使设计复杂化;如果定义太大...接口设计粒度是越小系统越灵活,这是不争的事实,但是这就带来的结构的复杂化,开发难度增加,维护性降低,这不是一个项目或产品所期望看到的,所有接口设计一定要注意适度。...接口隔离原则是对接口的定义也同时是对类的定义,接口和都尽量使用原子接口或原子类来组装,但是这个原子该怎么划分是这个模式也是设计中的一难题,在开发中一般遵循一个接口只服务于一个子模块或者业务逻辑的原则。...接口隔离原则和其他的设计原则一样,都是需要花费较多的时间和精力来进行设计和筹划,但是它带来了设计的灵活性,让你在业务人员在提出“无理”要求的时候可以轻松应付。...答案是根据经验和常识决定接口的粒度大小,接口粒度太小,导致接口数据剧增,开发人员呛死在接口的海洋里;接口粒度太大,灵活性降低,无法提供定制服务,给整体项目带来无法预计的风险。

    1.6K20

    设计模式 - 六设计原则之ISP(接口隔离原则)

    接口隔离是为了高内聚、低耦合。 在实际的开发中,通常都是先定义好需要开发的接口,并由各个服务去实现。...但是如果没有经过考虑和设计,很可能造成一个接口中包含了众多的接口方法,而这些接口并不一定在每一个类中都需要实现, 这样的接口很难维护, 也不易于扩展,每一次修改验证都有潜在的风险。...在具体应用接口隔离原则时, 应该根据以下几个规则进行考量 接口尽量小,但应该有限度。 一个接口只服务于一个子模块或者业务逻辑 为依赖接口的类定制服务, 只提供调用者需要的方法,屏蔽不需要的方法。...,非常不符合设计模式,也不易于维护。...因为不仅无法控制外部的调用,还需要维护对应的文档来说明这个接口不需要实现。 ---- Better Impl 接口隔离改善代码 按照接口隔离原则,应该在确保合理的情况下,把接口细分。

    72730

    Java设计模式:(1)设计模式七设计原则-接口隔离规则

    基本介绍 客户端不应该依赖它不需要的接口,既一个类对另一个类的依赖应该建立在最小的接口上 举个例子1 ?...上图1中,类B实现了接口Interface1; 类D实现了接口Interface1; 类A通过接口Interface1分别依赖类B,但只使用接口的1,2,3三个方法; 类C通过接口Interface1...Interface1依赖B,类C通过接口Interface1依赖D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D就不必去实现它们不需要的方法 按照接口隔离原则应当这样处理:...将接口Interface1拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。...例子2使用接口隔离原则改进: 1)将接口Interface1拆分为独立的三个接口,类A和类C通过接口隔离原则分别与他们建立依赖关系 public class Segregation2 { public

    31910

    .NET简谈接口

    仁者见仁智者见智吧; 接口是面向对象里面非常重要的概念,我们暂且不谈面向对象里面的接口;其实接口在我们日常生活中到处可见,比如自来水的水管、燃气阀门、电视机的插头等等;在面向对象里面的接口概念其实跟这些都是大同小异的...),这些问题一定要搞清楚,本人有过成功理解面向接口的经验,希望通过本文章能帮助您小理解一下;后面的升华(面向对象设计、面向接口设计等等),还得靠自己去摸索。...,只要大家都遵循一致的接口就能互相通讯,互相调用;有一位师曾经说过:在计算机科学领域里任何一个问题都能通过添加一个间接层来解决;这里的接口是一个比较大的开发思想,但是它与代码中的接口概念是完全一样的,...都是提高抽象性,提高独立性; 我们回到开发代码中来,我就拿.NET来示范了(本人只会C#),在某一个编程语言里面的接口其实就和上面的硬件接口层是一个意思,我们拿一个例子来说吧,我就奉献我认为最能说明接口问题的例子...,我们引用生产商1,然后实现规格说明书接口,请看图: 实现了接口,就可以与生产商1的产品进行对接了;记住,任何一个公开的接口接口里面的东西都是公开方必须要使用到的东西,必须实现;仔细想想我们生活中,

    26120

    .NET Core开发的iNeuOS工业互联平台,四特性:数据接口、图元绑定数据、预警和菜单

    演示信息       在线演示:http://demo.ineuos.net  (注:服务器比较慢,请耐心等待。...自已注册用户,体验系统功能)       视频演示:http://www.ineuos.net/video/iNeuOS%20and%20app.mp4       驱动开发:http://www.ineuos.net...(2)通过Http API接口主动推送数据到平台,参见:《第三方数据导入接口》第三方导入接口部分。(3)在iNeuView开发页面配置接口,主动读取数据。...如下图:       需要配置三类数据接口:最新数据接口、历史数据接口数据接口。...历史数据接口对应的应用,如下图:       数据接口对应的应用,如下图:       单击蓝色最新数据接口、历史数据接口数据接口文字,会显示帮助文档,规定的请求参数和返回的数据结构。

    72500

    数据设计范式

    为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。...在实际开发中最为常见的设计范式有三个: 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。...比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。...这样设计才算满足了数据库的第一范式,如下表所示。 ? 上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。...这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。

    1.2K120

    HTTP接口设计

    PUT,PATCH,OPTIONS方法 默认情况下请求实体会被视作标准 json 字符串进行处理,当然,依旧推荐设置头信息的 Content-Type 为 application/json 在一些特殊接口中...204 No Content : 请求执行成功,不返回相应资源数据,如 PATCH , DELETE 成功。...大部分接口应该在响应头中携带 Last-Modified, ETag, Vary, Date 信息,客户端可以在随后请求这些资源的时候,在请求头中使用 If-Modified-Since, If-None-Match...Content-Location 跨域 CORS 接口支持“跨域资源共享”(Cross Origin Resource Sharing, CORS),这里和这里和这份中文资料有一些指导性的资料。...Access-Control-Max-Age: 86400 Access-Control-Allow-Credentials: true JSON-P 如果在任何 GET 请求中带有参数 callback ,且值为非空字符串,那么接口将返回如下格式的数据

    1.8K20

    怎样设计接口

    怎样设计接口? 众所周知,接口是提供给其它模块或者系统使用的一种约定或者规范。因此接口必需要保 证足够的稳定性和易用性。这是设计接口的基本要求。...可是接口设计者也是不得已而为之,因为IO的设置接口的应用情况较 多,假设每一个设置接口都单独提供一个接口则会导致非常多的接口,另外就是保证接口的相 对稳定,採用抽象的数据接口便于移植和稳定。...,可是參数CookieParam过于抽象,将导致接口的调用 者在使用接口时,须要将基本数据类型的值组成一个CookieParam类型,然后才干调用接口。...(void* handle, const URL& url, String cookie); 除非接口的參数个数超过5个,否则最好採用基本数据类型作为參数。...3.怎样设计接口? 採用OOD思想,即面向对象的思想,提供类接口或者COM接口。 对于C函数接口怎样设计呢?

    90130

    ASP.NET设计应用程序的七绝招

    随着微软.NET的流行,ASP.NET越来越为广大开发人员所接受。作为ASP.NET的开发人员,我们不仅需要掌握其基本的原理,更要多多实践,从实践中获取真正的开发本领。...有一点不好,是这种方式是在ASP.NET运行时动态解析的,所以在IDE设计模式中,你可能不能预览它。 2....滚动DataGrid 这招就更简单了,有时候你的页面只有一个固定的地方,但是需要显示非常多的数据,亦或是也不定,但是只有固定的一个地方给你显示它了。...动态创建控件 利用PlaceHolder控件,这东西在ASP.NET 2.0 Mutil-View和Master Page中运用的就更加多了。...对于非ASP.NET的标准控件的自定义控件必须实现IAttributeAccessor接口或从WebControl派生并且可用expando属性 asp:ImageButton id=“foo” ImageUrl

    70550

    面向接口设计与角色接口

    此外,如果你的接口永远都只有一个实现类,并没有任何可能的需求变化,那么还有必要解耦吗? 所以说,不能死板的将类的方法提取接口,然后美其名曰为面向接口设计。...我们不能误解“面向接口设计”原则,该原则所指的“接口”并非Java语言中的interface类型,而是指面向调用者对外暴露的接口,代表一种交互与协作,是对信息的隐藏和封装,而不是具体的interface...即使是普通的java方法仍然满足隐藏细节的原则,如果是public的,就可以认为该方法是“面向接口设计”中的接口,也就是说:不要针对实现细节编程,而是针对接口编程。...同时实现这两个接口,这就是所谓的“对象、小接口”,又或者说是接口隔离原则的体现。...如果你先定义了一个类叫EmailService,然后因为你需要定义接口对其抽象,然后就简单地将这个类的所有公有方法都提取到抽象的接口中,这样设计接口,被Martin Fowler称为Header Interface

    70010

    设计模式六原则(四)----接口隔离原则

    (3)单一职责原则更加偏向对业务的约束: 接口隔离原则更加偏向设计架构的约束。这个应该好理解,职责是根据业务功能来划分的,所以单一原则更加偏向业务;而接口隔离更多是为了“高内聚”,偏向架构的设计。...使用多个专门的接口能够体现对象的层次,因为可以通过接口的继承,实现对总接口的定义。 能减少项目工程中的代码冗余。过大的接口里面通常放置许多不用的方法,当实现这个接口的时候,被迫设计冗余的代码。...4)接口设计是有限度的 了解环境,拒绝盲从。每个项目或产品都有选定的环境因素,环境不同,接口拆分的标准就不同, 需要深入了解业务逻辑。 五....一: 最初的设计 通常我们设计接口的方式如下: public interface IStudentScore { // 查询成绩 public void queryScore();...使用接口隔离原则的设计 采用接口隔离原则设计接口, UML图如下: public interface IQueryScore { // 查询成绩 public void queryScore

    1.7K41

    数据设计原则,还有数据设计范式

    如果大家有了解过数据设计的话,那么以下的内容就很容易理解了。数据设计主要是要根据用户的需求去设计和建立的一个过程。感兴趣的小伙伴们,接下来我们一起看看数据设计吧。...数据设计原则 首先我们看看一对一设计原则,在软件开发过程中,必须要遵循这个原则,原因是可以减少问题的出现,做到一个维护的作用,会避免数据杂现出现。 第二是独特命名原则,作用又有哪些呢?...可以减少重命名和规范名的出现,还能够去减少数据冗杂。 第三是双向原则,主要能够保证到及时更新,非事物单位上还能提供保障。...image.png 数据设计范式 什么是数据设计范式,简单来说是数据设计的一种存储性能,与开发人的操作数据有关,是需要满足一些规范来优化数据的存储方式。...以上内容就是今天所要了解的数据设计原则以及三设计,如果大家对本文有哪些不理解的地方,都可以提出来,小编一一一为大家解答。

    1.3K20

    设计模式六原则(4):接口隔离原则

    (图1  未遵循接口隔离原则的设计)          这个图的意思是:类A依赖接口I中的方法1、方法2、方法3,类B是对类A依赖的实现。...如果将这个设计修改为符合接口隔离原则,就必须对接口I进行拆分。在这里我们将原有的接口I拆分为三个接口,拆分后的设计如图2所示: ?...在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活。接口设计时对外部设定的“契约”,通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。         ...采用接口隔离原则对接口进行约束时,要注意以下几点: 接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性是不挣的事实,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。...使接口用最少的方法去完成最多的事情。 运用接口隔离原则,一定要适度,接口设计的过大或过小都不好。设计接口的时候,只有多花些时间去思考和筹划,才能准确地实践这一原则。

    83370

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

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

    40830

    SDK设计心得之接口设计

    因此前期的设计显得尤为重要。关于这部分内容,我会分两篇来介绍,这篇重点介绍具体接口设计。另一篇SDK设计心得之架构和资源将重点介绍SDK的架构和一些资源的使用方式。...关于接口设计 设计原则 接口名称、参数名称要足够清晰 一个牛逼的接口名称可以替代无数的注释 一个接口只做一件事 一个接口只做一件事。...我们有个功能有两个接口:一个是需要传参数,另一个不需要传参,两者的逻辑完全是独立的。本来是根据第一个原则设计了两个信、达也算雅的接口来实现。...,尽可能少的在一个接口中使用同一数据类型的参数,如果确实很多,建议封装为Object作为参数。...有些参数调用了是直接展示出来的,有些参数是放在回调或者数据统计使用的,完全是不知道参数正确与否的。

    6.4K90
    领券