使用性的单例模式,项目中应用

  • 实现阶段进阶:

如果查看书本上单例模式,简单一句话,都是如何实现。

并且实现务必有 Class.GetInstance() 的语句。这种方式的缺点还一个就是代码的可读性受影响; 原因区别于非单例的代码new Class();

并且对于库的引用者的视角需要明白单例一说。

那么如何解决这个问题呢?

封装

(使用SingleInterface 封装SingleTon)


    public class SingleTon
    {
        private static int fieldNumber;

        public int FieldNumber
        {
            get { return fieldNumber; }
            set { fieldNumber = value; }
        }

        private SingleTon()
        {
        }

        private static SingleTon instence;

        public static SingleTon GetInstance()
        {
            if (instence == null)
            {
                instence = new SingleTon();
            }
            return instence;
        }

        public void MethodA()
        {
            Console.WriteLine("SingleTon :{0}", fieldNumber++);
        }
    }


    public class SingleInterface
    {
        private SingleTon singleClent;
        public SingleInterface()
        {
        }

        public void Initialize()
        {
            singleClent = SingleTon.GetInstance();
        }

        public void MethodA()
        {
            singleClent.MethodA();
        }
    }


  • 实用阶段


如果不做处理 这种方式只能应用于,单进程中;

唯有将所有引用单例的库或应用  只能运行与一个可执行文件中。原因:操作系统给每个进程分配单独的内存块;

如果EXEa.exe和EXEb.exe 通过引用的方式加载单例库,不能实现单例的作用。

解决办法:

模式结合;结合SOA; 将单例独立成服务。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峰霄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值