- 博客(50)
- 资源 (3)
- 收藏
- 关注
转载 建议:接口只用于定义类型。
当类实现接口时,接口就充当可以引用这个类的实例的类型(type)。因此,类实现了接口,就表明客户端可以对这个类的实例实施某些动作。为了任何其他目的而定义接口时不恰当的。有一种接口被称为常量接口(constant interface),他不满足上面的条件。这种接口没有包含任何方法,她只包含静态的final域,每个域都导出一个常量。使用这些常量的类实现这个接口,以避免用类名来修饰常量名。下面是一个...
2017-10-20 20:37:39 922
转载 建议:接口优于抽象类。
Java程序设计语言提供了两种机制。可以用来定义允许多个实现的类型:接口和抽象类。这两种机制之间最明显的区别在于,抽象类允许包含某些方法的实现,但是接口则不允许。一个更为重要的区别在于,为了实现由抽象类定义的类型,类必须称为抽象类的一个子类。任何一个类,只要它定义了所有必要的方法,并且遵守通用约定。他就被允许实现一个接口,而不管这个类是处于类层次(class hierarchy)的哪个位置。因为J...
2017-10-19 20:49:27 601
转载 建议:要么为继承而设计,并提供文档说明,要么就禁止继承。
首先,该类的文档必须精确地描述覆盖每个方法所带来的影响。换句话说,该类必须有文档说明他可覆盖(override)的方法的自用性(self-use)。对于每个公有的或受保护的方法或者构造器,它的文档必须指明该方法或者构造器调用了哪些可覆盖的方法,是以什么顺序调用的,每个调用的结果又是如何影响后续的处理过程的(所谓可覆盖(override)的方法,是指非final的,公有的或受保护的)。更一般的,类必...
2017-10-18 21:45:11 311
转载 复合优先于继承。
在包的内部使用继承是非常安全的。在那里,子类和超类的实现都处在同一个程序员的控制之下。对于专门为了继承而设计、并且具有很好地文档说明的类来说,使用继承也是非常安全的。与方法调用不同的是,继承打破了封装性。换句话说,子类依赖于其超类中特定功能的实现细节。超类的实现有可能会随着发行版本的不同而有所变化,如果真的发生了变化,子类可能会遭到破坏,即使他的代码完全没有改变。因此,子类必须要跟着其超类的更...
2017-10-18 20:37:52 650
转载 建议:使可变性最小化。
不可变类只是其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期(lifetime)内固定不变。Java平台类库中包含许多不可变的类,其中有String、基本类型的包装类、BigInteger和BigDecimal。存在不可变的类有许多理由:不可变的类比可变的泪更加易于设计、实现和使用。他们不容易出错,且更加安全。为了使类成为不可变,要遵循下面五...
2017-10-15 18:22:24 633
转载 建议:在公有类中使用访问方法而非公有域。
有时候,可能会编写一些退化类(degenerate classes),没有什么作用,只是用来集中实例域:// Degenerate classes like this should not be public!class Point {public double x;public double y;}由于这种类的数据域是可以被直接访问的,这些类没有提供封装(encap...
2017-10-15 16:23:17 438
转载 建议:使类和成员的可访问性最小化。
要区别设计良好的模块与设计不好的模块,最重要的的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰地隔离开来。然后,模块之间只通过他们的API进行通信,一个模块不需要知道其他模块的内部工作情况。这个概念被称为信息隐藏(information hiding)或封装(encapsulation),是设计模式的基本原...
2017-10-15 14:47:42 461
转载 建议:考虑实现Comparable接口。
compareTo方法不但允许进行简单的等同性比较,而且允许执行顺序比较,除此之外,它与Object的equals方法具有相似的特征,他还是个泛型。类实现了Comparable接口,就表明他的实例具有内在的排序关系(natural ordering)。一旦类实现了Comparable接口,他就可以跟许多泛型算法(generic algorithm)以及依赖于该接口的集合实现(collectio...
2017-10-15 10:46:00 623
Solr技术培训资料(基础知识+高级应用)。
2017-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人