设计模式-原型模式
程序员文章站
2022-07-01 23:38:39
单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回。是个新对象,但是又不是new出来的。 ......
单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回。是个新对象,但是又不是new出来的。
/// <summary> /// 原型模式:单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回 /// 是个新对象,但是又不是new出来的 /// </summary> public class prototype { /// <summary> /// 构造函数耗时耗资源 /// </summary> private prototype() { long lresult = 0; for (int i = 0; i < 10000000; i++) { lresult += i; } thread.sleep(2000); console.writeline("{0}被构造一次", this.gettype().name); } /// <summary> /// 3 全局唯一静态 重用这个变量 /// </summary> private static volatile prototype _prototype = new prototype(); /// <summary> /// 2 公开的静态方法提供对象实例 /// </summary> /// <returns></returns> public static prototype createinstance() { prototype prototype = (prototype)_prototype.memberwiseclone(); return prototype; } //既然是单例,大家用的是同一个对象,用的是同一个方法,那还会并发吗 还有线程安全问题吗? public int itotal = 0; public void show() { this.itotal++; } }
上一篇: QueryableHelper
下一篇: 05替换空格