尝试确定此代码是否会通过使用单例带来任何好处(以及之前的开发人员)使用Singleton/Facade在几乎每个页面中都有很多方法调用,但实际上并不维护数据。例如:publicclassFooFacade{privatestaticFooFacadem_facade=null;私有静态数据访问管理器m_dataAccessMgr=null;公共StringBuilder状态{get;放;}privateFooFacade(){this.Status=newStringBuilder();}publicstaticFooFacadegetInstance(){if(m_facade==null){m_dataAccessMgr=DataAccessManager.getInstance();m_facade=newFooFacade();}返回m_facade;}publicvoidclearStatus(){this.Status.Remove(0,Status.Length);}publicvoidMethod1(stringvalue1,intvalue2){//DOSOMETHING}publicListMethod2(stringvalue1,intvalue2){//DOSOMETHINGELSE//RETURNLIST}现在,我在命名约定方面遇到了一些问题并且他们将在Singelton和Facade同一个类中,而Facade并不是真正的Facade。(但这是一个完全不同的对话)。所以我的问题是这是否真的有益。开发人员可以解释的最好的是,它更适合内存管理,因为您不会经常创建和处理对象。我们的应用程序不是企业应用程序,我们没有内存问题。任何时候网站变慢,都是因为数据库而不是代码。感谢您的帮助。我是一名开发人员,喜欢了解为什么它能让我成为更好的开发人员。由于我无法从开发人员那里获得有意义的文本,因此我正在与你们联系。谢谢,乍得更新感谢下面的评论,我知道状态是一个严重的问题,因为它有可能成为一个巨大的安全漏洞。在内存管理、速度等方面,在Singleton中使用这段代码有什么好处?或者每次我需要它时只实例化FooFacade会更容易。您遇到了麻烦,因为您的对象具有内部状态(Status)。具体来说,如果从多个线程(例如在Web应用程序中)使用单例,则代码可能无法正常工作。仅当您的类没有内部状态时才使用单例。在内存管理、速度等方面,在Singleton中使用这段代码有什么好处?或者每次我需要它时只实例化FooFacade会更容易。此类型的所有实例都包含对StringBuilder的引用。此外,在创建新实例时没有繁重的工作(除非DataAccessManager.getInstance()在幕后做了一些令人讨厌的事情)。所以不,在内存管理、速度等方面没有真正的好处。我只是在需要时实例化一个新实例。(或者更确切地说:我会尝试完全摆脱这个类......)我会为必须作为单例存在的事物保存单例模式,例如在多个消费者之间共享的特定文件。单例通常涉及隔离线程问题。但是,如果您有一个不包含任何状态并且使用单例模式实现的类,那么您已经实现了一个很容易成为反模式的实用程序类。虽然不是一个好主意,但带有静态方法的静态类本质上更高效。静态方法在调用方法之前不需要进行空检查。但是就像我一开始说的,把单例模式留给必须是单例的东西。以上是C#学习教程:尝试判断这段代码是否会为使用Singleton带来任何好处。分享的全部内容,如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
