zoukankan      html  css  js  c++  java
  • 为什么需要 单例设计模式(Singleton)?

    像下面的一个单例

    Java代码
    1. public class Singleton {  
    2.     private static Singleton instance = null;  
    3.     private Singleton(){};  
    4.     public static synchronized Singleton getInstance(){  
    5.         if(instance == null)  
    6.              instance = new Singleton();  
    7.         return instance;  
    8.      }  
    9.     public void doSomething(){  
    10.         //do something  
    11.      }  
    12. }  
    public class Singleton { private static Singleton instance = null; private Singleton(){}; public static synchronized Singleton getInstance(){ if(instance == null) instance = new Singleton(); return instance; } public void doSomething(){ //do something } }


    它要实现的主要目标,就是在一个应用中只维护一个Singleton实例

    但一个类在一个应用中也是唯一的,为什么不能直接以类作为单例呢?

    Java代码
    1. public final class AnotherSingleton{  
    2.     private AnotherSingleton(){}  
    3.     public static void doSomething(){  
    4.         //do something  
    5.      }  
    6. }  
    public final class AnotherSingleton{ private AnotherSingleton(){} public static void doSomething(){ //do something } }

    把类的所有方法都改为静态方法,

    所有属性都改为静态属性(我们可以把

    静态属性看成类的内部状态),

    但是不允许实例化,

    对类的操作相当于对单例的操作

    而且类也可以维护内部状态(通过静态私有属性)

    这完全满足了单例的要求。

    不知道为什么需要单例模式。。。


    因为我想不出来在什么情况下 单例可以满足需求

    而 类 不能。

  • 相关阅读:
    [翻译] .NET 官宣跨平台 UI 框架 MAUI
    手写一个简易的多周期 MIPS CPU
    介绍一个基于 .NET 的船新 PHP SDK + Runtime: PeachPie
    C# 9 新特性:代码生成器、编译时反射
    .NET 5 中的正则引擎性能改进(翻译)
    你所不知道的 C# 中的细节
    拿 C# 搞函数式编程
    从未来看 C#
    直接使用汇编编写 .NET Standard 库
    用 F# 手写 TypeScript 转 C# 类型绑定生成器
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400563.html
Copyright © 2011-2022 走看看