设计模式之不变设计模式
不变设计模式(immutable pattern)
1 定义
这些对象共享相同对象的引用,为此,在对象构造好之后,不允许改变共享对象的内容
2 例子在jdk中String被设计为不可变类,一旦生成一个String对象,它的所有属性就不会被变,任何方法要么返回这个对象本身的原2)不变类缺点:不灵活
5 应用5.1设计一个缓存例子:设计一个单例,属性HashMap已被赋值,外部只能使用属性HashMap的值,不能对其进行修改,所以只返回HashMap中的值,不返回该HashMap的引用地址。
public ExamImmutableQueue<E> append(ExamImmutableQueue<E> queue){ ExamImmutableQueue<E> temp=queue;ExamImmutableQueue<E> result=this; if(!queue.isEmpty()){ for(int i=0;i<queue.size;i++){ q.add(temp.peek()); temp=temp.dequeue(); }//end for }//end if return result;} //end append()
参考文献:
Immutability in C# Part Four: An Immutable Queue
Immutability in C# Part Two: A Simple Immutable Stack
Making an immutable queue with guaranteed constant time operations