zoukankan      html  css  js  c++  java
  • 编写高质量代码改善C#程序的157个建议——建议107:区分静态类和单例

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

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

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

        interface ISample
        {
            
        }
    
        static class SampleClass:ISample
        {
            
        }

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

            static void SampleMethod(SampleClass sample)
            {
            }

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

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

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

  • 相关阅读:
    欧拉函数
    uva10870 矩阵
    poj3233 矩阵等比数列求和 二分
    hdu4990 矩阵
    hdu4549 矩阵快速幂 + 欧拉降幂
    补矩阵的题目
    CodeForces 450B 矩阵
    hoj2662 状态压缩dp
    poj3254 状态压缩dp
    zoj2770 差分约束系统
  • 原文地址:https://www.cnblogs.com/jesselzj/p/4748248.html
Copyright © 2011-2022 走看看