jjzjj

Singleton

全部标签

c# - 具有终结器但不是 IDisposable 的单例

这是我从“CLRviaC#”、“EffectiveC#”和其他资源中对IDisposable和终结器的理解:IDisposable用于确定性地清理托管和非托管资源。负责非托管资源(例如文件句柄)的类应实现IDisposable并提供终结器以保证即使客户端代码未在实例上调用Dispose()也能清理它们。只负责托管资源的类不应该实现终结器。如果您有终结器,则必须实现IDisposable(这允许客户端代码做正确的事情并调用Dispose(),而终结器可防止在忘记时泄漏资源)。虽然我理解并同意上述所有内容的原因,但在一种情况下我认为打破这些规则是有意义的:负责非托管资源的单例类(例如提供单

c# - 单例模式在现实世界中有哪些应用?

重复Ondesignpatterns:WhenshouldIusethesingleton?classSingleton{privatestaticSingletoninstance;privateSingleton(){}publicstaticSingletonInstance{get{if(instance==null)instance=newSingleton();returninstance;}}} 最佳答案 简单。单例做什么?它提供对对象实例的全局访问,并且它保证永远不会创建超过一个该类型的实例。因此,当您需要两者这些东

c# - 单例成员的线程安全使用

我有一个多个类使用的C#单例类。通过Instance访问Toggle()方法线程安全吗?如果是,根据什么假设、规则等。如果不是,为什么和我该如何解决?publicclassMyClass{privatestaticreadonlyMyClassinstance=newMyClass();publicstaticMyClassInstance{get{returninstance;}}privateintvalue=0;publicintToggle(){if(value==0){value=1;}elseif(value==1){value=0;}returnvalue;}}

c# - C# 的单例模式

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我需要存储一堆需要全局访问的变量,我想知道单例模式是否适用。从我看到的例子来看,单例模式只是一个不能被继承的静态类。但是我看到的示例对于我的需要来说过于复杂。最简单的单例类是什么?难道我不能只创建一个内部有一些变量的静态密封类吗?

c# - 让类将自身作为参数传递给泛型基类是邪恶的吗?

我第一次看到一位同事在实现对象池时这样做。他将要被池化的类作为参数传递给通用基类。这个基类列出了池化代码。奇怪的是基类会知道它的子类。在每个正常情况下,这都被认为是不好的做法。但在这种情况下,parent只是一种避免编写重复代码的技术解决方案。基类永远不会被任何其他代码引用。这种构造的一个缺点是它“烧掉了基类”。您不能在层次结构的中间引入通用基类。这个问题可能超出了主题。下面是一个可以想象的例子:publicabstractclassSingletonwhereT:class{publicstaticTInstance{get;privateset;}publicSingleton()

javascript - 将多个实体从不同的文件添加到 JavaScript 命名空间

给定两个不同文件中使用的命名空间ns:abc.jsns=ns||(function(){foo=function(){...};return{abc:foo};}());定义.js//isthiscorrect?ns=ns||{}ns.def=ns.def||(function(){defoo=function(){...};return{deFoo:defoo};}());这是将def添加到ns到命名空间的正确方法吗?换句话说,如何在javascript中合并两个对命名空间的贡献?如果abc.js出现在def.js之前,我希望它能工作。如果def.js出现在abc.js之前,我希望n

javascript - 如何在 Angular 2 中创建单例服务并读取 URL 参数

我正在读取应用程序的网址http://localhost/?config=preprod我正在尝试创建一个读取UrlParameters.js并公开get(key)方法的单例服务。哪个商店config=preprod类似下面(来self的Angular1.x单例服务)get:function(key){if(!params){params={};varqueryString=window.location.search.substring(1);_(queryString.split('&')).each(function(param){varval=param.split('=');

javascript - 模块模式和单例模式的区别?

我看到在一些项目中,ModulePattern使用而不是SingletonPattern,反之亦然。我想确切地知道,ModulePattern和SingletonPattern有什么区别? 最佳答案 Modulepattern在javascript中指的是通用机制的代码模块化。将一个“类”拆分到多个文件中效果很好,因为您可以独立定义构造函数和各种原型(prototype)方法组。每个模块通常都包裹在一个闭包中以创建静态局部变量-这称为揭示模块模式。Singletonpattern在javascript中是指实例创建的限制,常用laz

javascript - JavaScript 中的单例模式

下面是一个非常流行的JavaScript单例模式实现示例:varmySingleton=(function(){varinstance;functioninit(){functionprivateMethod(){console.log("Iamprivate");}varprivateVariable="Imalsoprivate";varprivateRandomNumber=Math.random();return{publicMethod:function(){console.log("Thepubliccanseeme!");},publicProperty:"Iamalso

javascript - 有哪些使用 JavaScript 实现设计模式的示例?

我是一个使用JavaScript的中等熟练程序员,但我不是专家。我知道你可以用它做一些非常强大的事情,除了相当基本的DOM操作之外,我还没有看到太多东西。我想知道人们是否可以提供一些使用JavaScript的传统设计模式概念的示例,例如工厂方法、单例等。这些模式将在哪些情况下用于网络? 最佳答案 我只是想添加我从JonathanRauch已经推荐的ProJavaScript设计模式中学到的最喜欢的JavaScript模式。这是命名空间单例模式。基本上,您通过单例创建namespace,允许您隐藏外部使用的方法和变量。隐藏/公开的方法