类原则

1.单一职责原则 – Single Responsibility Principle(SRP)

就一个类而言,应该仅有一个引起它变化的原因。 职责即为“变化的原因”。

2.开放-封闭原则 – Open Close Principle(OCP)

软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。对于扩展是开放的,对于更改是封闭的. 关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来。开发人员应该仅仅对程序中呈现出频繁变化的那些部分作出抽象. 拒绝不成熟的抽象和抽象本身一样重要 )

3.里氏替换原则 – Liskov Substitution Principle(LSP)

子类型(subclass)必须能够替换掉它们的基类型(superclass)。

4.依赖倒置原则(IoCP) 或 依赖注入原则 – Dependence Inversion Principle(DIP)

抽象不应该依赖于细节。细节应该依赖于抽象。Hollywood原则: "Don't call us, we'll call you". 程序中所有的依赖关系都应该终止于抽象类和接口。针对接口而非实现编程。任何变量都不应该持有一个指向具体类的指针或引用。任何类都不应该从具体类派生。 任何方法都不应该覆写他的任何基类中的已经实现了的方法。

5.接口隔离原则(ISP)

不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。多个面向特定用户的接口胜于一个通用接口。

包(类库、DLL)内聚原则

6.重用发布等价原则(REP)

重用的粒度就是发布的粒度。

7.共同封闭原则(CCP)

包(类库、DLL)中的所有类对于同一类性质的变化应该是共同封闭的。 一个变化若对一个包产生影响, 则将对该包中的所有类产生影响, 而对于其他的包不造成任何影响。

8.共同重用原则(CRP)

一个包(类库、DLL)中的所有类应该是共同重用的。

如果重用了包(类库、DLL)中的一个类,

那么就要重用包(类库、DLL)中的所有类。

(相互之间没有紧密联系的类不应该在同一个包(类库、DLL)中。)

包(类库、DLL)耦合原则

9.无环依赖原则(ADP)

在包的依赖关系图中不允许存在环。

10.稳定依赖原则(SDP)

朝着稳定的方向进行依赖。

应该把封装系统高层设计的软件(比如抽象类)放进稳定的包中,不稳定的包中应该只包含那些很可能会改变的软件(比如具体类)。

11.稳定抽象原则(SAP)

包的抽象程度应该和其稳定程度一致。一个稳定的包应该也是抽象的,一个不稳定的包应该是抽象的. )

其它扩展原则

12.BBP(Black Box Principle)黑盒原则

多用类的聚合,少用类的继承。

13.DAP(Default Abstraction Principle)缺省抽象原则

在接口和实现接口的类之间引入一个抽象类,这个类实现了接口的大部分操作.

14.IDP(Interface Design Principle)接口设计原则

规划一个接口而不是实现一个接口。

15.DCSP(Don't Concrete Supperclass Principle)

不要构造具体的超类原则,避免维护具体的超类。

16.迪米特法则

一个类只依赖其触手可得的类。

java 接口api设计的注意事项_Java接口设计原则相关推荐

  1. 分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api

    本文章向大家介绍分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api,主要包括分享淘宝时间服务器同步时间接口api和苏宁时间服务器接口api使用实例.应用技巧.基本知识点总结和需要注意事项, ...

  2. App开放接口api安全:Token签名sign的设计与实现

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源:cnblogs.com/whcghost/p/5657 ...

  3. java课程设计连连看_连连看_java课程设计报告

    连连看_java课程设计报告 <连连看> 项目设计报告 专 业: 软件工程 班 级: 07级2班 姓 名: 二00九 年 七 月 二十一 日 目 录 1.项目设计目的.意义-------- ...

  4. java接口和抽象类区别是什么_Java接口和抽象类有什么区别

    接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制. 接口是公开的,不能有私有的方法或变量,接口中的所有方法都没有方法体,通过关键字interface实现. ...

  5. java课程设计-音乐播放器_java课程设计---java音乐播放器.doc

    java课程设计---java音乐播放器 Java程序设计课程设计 题 目 java音乐播放器 学 号: 姓 名: 指导教师: 完成时间: 目 录 第一章 系统概述3 1.需求分析3 1.1任务目的: ...

  6. java课程设计 博客园_java课程设计

    Java程序设计 课程设计 3.本人负责的主要功能展示与代码分析 //这是一个文件夹类 public class Folder { private String name;//文件夹的名称 priva ...

  7. java 设计一个动物类_Java课程设计(动物换位)

    [实例简介] 是一个关于Java课程设计的一个游戏,这是一个动物换位的游戏,是在前人的基础上改进的.不好请见谅! [实例截图] [核心代码] 112df6fb-1189-4bc0-a501-6dd58 ...

  8. java的方法返回对象为空_java接口返回为空时候如何处理

    java前后端分离以后,后端常常返回给前端以下的内容: 如果遇到某个字段的内容为空的时候会出现这样的情况: 图中红色箭头的情况是一个数组集合,但是该集合为空,所以就返回null,但是我们如果想对于这样 ...

  9. java课程设计 博客园_Java课程设计博客(团队)

    Java课程设计博客(团队) 1. 团队/项目名称 使用JAVA实现简易HTTP服务器 2. 团队成员 组长:林一心 组员:张杭镖 3. 项目git地址 4. 项目git提交记录截图 5. 项目功能架 ...

最新文章

  1. RSA加密、解密、签名、校验签名
  2. 弱鸡儿终于没爆零Day7
  3. HTML标记语言——(二)
  4. 《Effective Java 3rd》读书笔记——对于所有对象都通用的方法
  5. 2021湖南高考成绩分段查询,2021年湖南高考成绩排名查询系统,湖南高考位次排名查询...
  6. androidhelper python api_python apihelper
  7. DPDK-VPP 学习笔记-03 Load Balancer plugin
  8. 史上最通俗易懂的YOLOv2讲解
  9. 40-42-网络层ARP协议,ARP欺骗,网络执法官和arp防火墙
  10. 用Python一次生成多个电话号码-从此不会没有电话打!
  11. 得意狗寄给我特快专递
  12. 30岁前不必在乎的30件事
  13. 高斯分布估计子的性能与克拉默劳下界的讨论
  14. 电商平台用户购买行为真实度的检测方法及系统
  15. Java开发人员的微服务:微服务通信
  16. Mstar Mac Phy 驱动学习
  17. microsoft authenticator 华为等手机无谷歌框架使用方法
  18. 微信小程序自学过程中遇到的问题 转
  19. java第14章学习总结
  20. 粒子群优化算法的思想

热门文章

  1. 好玩的100个网站收藏
  2. rtk手簿Android代码,合众思壮手簿eSurveyAndroid连接cors账号教程
  3. 关于配置中心的几个问题
  4. 关于MongoDB的几个问题
  5. python文件命名的错误
  6. process_进程池
  7. 第103天:CSS3中Flex布局(伸缩布局)详解
  8. 脚本编辑$RANDOM 和 case语句 (笔记)
  9. Java注解学习一:注解术语
  10. BestCoder Round #87 1003 LCIS[序列DP]