总结java的interface和abstract class(二)

2014-11-24 00:14:19 · 作者: · 浏览: 3
{ return s.toArray(); }
39: public T[] toArray(T[] a) { return s.toArray(a); }
40: @Override public boolean equals(Object o)
41: { return s.equals(o); }
42: @Override public int hashCode() { return s.hashCode(); }
43: @Override public String toString() { return s.toString(); }
44: }

使用它的客户端程序:

1: Set s = new InstrumentedSet(new TreeSet(cmp));
2: Set s2 = new InstrumentedSet(new HashSet(capacity));

3. 人人都说 面向接口编程,很多时候矫枉过正了, 搞得接口漫天飞。interface常常是重构出来的,而不总是设计出来的。程序分层中,越是靠近底层的程序,越倾向于需要接口,越靠近顶层的程序,对接口的需求倾向于越小。如果你明知道以后不太可能提供另一套实现,提前写个接口摆那里也没啥意义,尽管定义接口的成本很低。如果你担心一旦有一天确实提供了另一套实现,重构code也不会很麻烦。只要遵守了单一职责原则和迪米特法则。迪米特法则的一种表述方式是:talk only to your immediate friends