当前位置: 移动技术网 > IT编程>软件设计>设计模式 > 设计模式-原型模式

设计模式-原型模式

2019年09月19日  | 移动技术网IT编程  | 我要评论

单例的基础上升级了一下,把对象从内存层面复制了一下,然后返回。是个新对象,但是又不是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++;
    }

}

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网