java的特性与原则
2016-09-28 12:22
218 查看
java特性:封装、继承、多态
(1)单一职责原则(Single-Responsibility Principle,SRP):指一个类的功能要单一,不能包罗万象,如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌,但效率不高。
(2)开放封闭原则(Open-Closed Principle,OCP):一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。比如,一个网络模块,原来只服务端功能,而现在要加入客户端功能。那么应该
不用修改服务端代码的前提下,就能够增加客户端功能的实现代码。这要求在设计之初就应当将服务端和客户端分开,公共部分抽象出来。
(3)里氏替换原则(Liskov-Substituent Principe,LSP):子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工都可以参加抽奖,那么无论是老员工还是新员工,也
管是总部员工还是外派员工,都应当可以参加抽奖。
(4)依赖原则(Dependency-Inversion Principle,DIP):具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要用到A的功能,这个时候,B不应该直接使用A中的具体类,而应当由B定义一抽象
口,并由A来实现这个抽象接口,B只使用这个抽象接口,这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口,通过上层模块难以避免
赖下层模块,加入B也直接依赖A实现,那么就可能造成循环依赖,一个常见的问题就是编译A模块时需要直接包含到B模块的CPP文件,而编译B时同样需要直接包含到A
CPP文件。
(5)接口分离原则(the interface Segregation Principe,ISP):模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来。
(1)单一职责原则(Single-Responsibility Principle,SRP):指一个类的功能要单一,不能包罗万象,如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌,但效率不高。
(2)开放封闭原则(Open-Closed Principle,OCP):一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。比如,一个网络模块,原来只服务端功能,而现在要加入客户端功能。那么应该
不用修改服务端代码的前提下,就能够增加客户端功能的实现代码。这要求在设计之初就应当将服务端和客户端分开,公共部分抽象出来。
(3)里氏替换原则(Liskov-Substituent Principe,LSP):子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工都可以参加抽奖,那么无论是老员工还是新员工,也
管是总部员工还是外派员工,都应当可以参加抽奖。
(4)依赖原则(Dependency-Inversion Principle,DIP):具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要用到A的功能,这个时候,B不应该直接使用A中的具体类,而应当由B定义一抽象
口,并由A来实现这个抽象接口,B只使用这个抽象接口,这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口,通过上层模块难以避免
赖下层模块,加入B也直接依赖A实现,那么就可能造成循环依赖,一个常见的问题就是编译A模块时需要直接包含到B模块的CPP文件,而编译B时同样需要直接包含到A
CPP文件。
(5)接口分离原则(the interface Segregation Principe,ISP):模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来。
相关文章推荐
- java基础----面向对象特性和原则
- java基础总结(二)-----》java三大特性/原则------继承
- Java 三大特性、五大原则
- java基础总结-----》java三大特性/原则------多态
- java基础总结-----》java三大特性/原则------封装
- 【JAVA设计模式-第一课】面向对象特性及原则回顾
- 猛虎出山: Java 5.0的新语言特性
- Java 6新特性一箩筐,将提供中文化的API文档
- 猛虎出山: Java 5.0的新语言特性
- 使用Java5特性来简化反射编程
- 使用 Java 5 RowSet 新特性访问 IBM DB2 数据库
- Java中,利用语言与平台特性改进RMI分布计算框架
- 转>java5.0新特性
- Java 6新特性一览 将直接支持JavaScript
- java设计模式中的几个重要原则
- Java语言的关键特性
- 利用Java平台的特性建造一个令人瞩目的系统
- 关于Java中文问题的几条分析原则
- java高级语言特性
- Java中,利用语言与平台特性改进RMI分布计算框架