码迷,mamicode.com
首页 > Windows程序 > 详细

【转】编写高质量代码改善C#程序的157个建议——建议107:区分静态类和单例

时间:2017-12-07 18:50:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:参数   ace   区分   模式   实现   strong   编写高质量代码   c#   传递   

 

建议107:区分静态类和单例

有一种观点认为:静态类可以作为单件模式的一种实现方式。事实上,这是不妥当的。按照传统的观点来看,单例是一个实例对象。而静态类并不满足这一点。静态类也直接违反面向对象三大特性的两项:继承和多态。

无法让一个静态类从其它类型继承的实例如下:

    interface ISample
    {
        
    }

    static class SampleClass:ISample
    {
        
    }

上面代码编译直接通不过。同时,已不能让静态类作为参数和返回值进行传递,如下所示:

        static void SampleMethod(SampleClass sample)
        {
        }

这个方法也会导致编译问题。

从本质上讲,在C#中,静态类不会被认为是一个“真正的对象”。而单例,则不会存在这样的问题。单例,它是一个实例对象,仅仅因为特殊的要求,它被自己实现为在整个系统中只有一个对象。

 

 

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

【转】编写高质量代码改善C#程序的157个建议——建议107:区分静态类和单例

标签:参数   ace   区分   模式   实现   strong   编写高质量代码   c#   传递   

原文地址:http://www.cnblogs.com/farmer-y/p/8000285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!