JAVA异常设计原则】的更多相关文章

异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性.可维护性.健壮性都起到至关重要. JAVA根据用处的不同,定义了两类异常     * Checked Exception: Exception的子类,方法签名上需要显示的声明throws,编译器迫使调用者处理这类异常或者声明throws继续往上抛.     * Unchecked Exception: RuntimeException的子类,方法签名不需要声明throws,编译器也不会强制调用者处理该类异常. 异常的作用和好处…
写在前面 本文属于Java软件设计原则系列文章的其中一篇,后续会继续分享其他的原则.想以最简单的方式,最直观的demo去彻底理解设计原则.文章属于个人整理.也欢迎大家提出不同的想法. 首先是一些理论性知识 定义 开闭原则,The Open-Closed Principle (OCP). 一个软件实体,如类.模块和函数对扩展开放,对修改关闭. 优点 稳定性.开闭原则要求扩展功能不修改原来的代码,可以让软件系统在变化中保持稳定. 扩展性.开闭原则要求对扩展开放,通过扩展提供新的或改变原有的功能,让软…
类的设计原则     依赖倒置原则-Dependency Inversion Principle (DIP) 里氏替换原则-Liskov Substitution Principle (LSP) 接口分隔原则-Interface Segregation Principle (ISP) 单一职责原则-Single Responsibility Principle (SRP) 开闭原则-The Open-Closed Principle (OCP) 一. Dependency Inversion P…
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? 在有效使用异常的情况下,异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出,如果你的异常没有回答以上全部问题,那么可能你没有很好地使用它们.有三个原则可以帮助你在调试过程中最大限度地使用好异常,这三个原则是: 具体明确 提早抛出 延迟捕获 为了阐述有效异常处…
原则1:DRY(Don't repeat yourself) 即不要写重复的代码,而是用"abstraction"类来抽象公有的东西.如果你需要多次用到一个硬编码值,那么可以设为公共常量:如果你要在两个以上的地方使用一个代码块,那么可以将它设为一个独立的方法.SOLID设计原则的优点是易于维护,但要注意,不要滥用,duplicate 不是针对代码,而是针对功能.这意味着,即使用公共代码来验证OrderID和SSN,二者也不会是相同的.使用公共代码来实现两个不同的功能,其实就是近似地把这…
理论性知识 定义 单一职责原则, Single responsibility principle (SRP): 一个类,接口,方法只负责一项职责: 不要存在多余一个导致类变更的原因: 优点 降低类的复杂度 提高类的可读性 提高系统的可维护性 降低变更引起的风险 特别说明 在我们的实际开发中,很多类或者方法都不完全符合单一职责原则.其实设计原则就是一种指导思想, 并不是要求开发人员必须遵守.根据实际业务需求,在能满足的情况下,尽可能去满足设计原则,这样才更有利于项目的后期维护和优化. 代码实战 非…
6大原则: 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 一.单一职责原则 定义:应该有且仅有一个原因引起类的变更 带来的好处: 类的复杂性降低,实现什么职责有清晰明确的定义 可读性提高 可维护性提高 变更引起的风险降低 对于单一职责原则,建议接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化. 二.里氏替换原则 继承的优点: 代码共享,减少创建类的工作量,子类拥有父类的属性和方法 提供代码重用性 提供代码扩展性 提供产品或项目开放性 继承缺点: 继承是…
在设计Java API的时候总是有很多不同的规范和考量.与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度.就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范.本文也可以看作为“API设计指南”这篇文章的附录. 我们还准备了一些前后比对的例子来展示这个列表如何帮助你理清设计需求,找出错误,识别糟糕的设计实践以及如何寻找改进的时机. 这个清单使用了如下的语言规范: 要 - 表示必要的设计 建议 - 表示在几个最好的设计中选…
定义一下观察者模式: 观察者模式又叫  发布-订阅  模式,定义的两个对象之间是一种一对多的强依赖关系,当一个对象的状态发生改变,所有依赖它的对象 将得到通知并自动更新(摘自Hand First). 关键角色: 1.主题(Subject) 抽象主题以及具体的主题 2.观察者(Observer) 抽象观察者以及具体观察者 我们可以这样理解两者之间的关系: 这就好比一个多个用户订阅同一个微信公众号,当公众号有内容更新,就立马通知所有的订阅用户.如图: 举个例子: 先来定义一个主题抽象类Subject…
理论性知识 定义 接口隔离原则, Interface Segregation Principle,(ISP). 一个类对应一个类的依赖应该建立在最小的接口上: 建立单一接口,不要建立庞大臃肿的接口: 尽量细化接口,接口中的方法尽量少. 优点 符合高内聚,低耦合的设计思想: 使类具有很好的可读性,可扩展性和可维护性: 代码实战demo 本次我们以动物场景为例 不遵守接口隔离原则的demo 首先定义一个动物接口,存在吃,飞,游泳3个行为方法,如下图 接下来定义一个cat类,实现动物接口.因为猫只有e…