あるクラスのインスタンスが1つしか存在しないようにして,また外部からアクセスできるようにする.
インスタンスを複数生成させないために留意すべき点は以下の通り
- newさせない
- コンストラクタはprivateに
- インスタンスはファクトリメソッドなどを利用して取得
- 遅延初期化したい
public class IterableComparator { | |
public static <T> Comparator<Iterable<T>> iterableComparator(Comparator<? super T> elementComparator) { | |
return (l1, l2) -> { | |
Iterator<T> i1 = l1.iterator(); | |
Iterator<T> i2 = l2.iterator(); | |
while(i1.hasNext() && i2.hasNext()) { | |
T t1 = i1.next(); | |
T t2 = i2.next(); | |
int c = elementComparator.compare(t1, t2); | |
if(c != 0) { |