美化的全局变量-变成一个美化的全局类。有人说打破面向对象设计。
给我一些场景,除了使用单例是有意义的良好的老记录器。
美化的全局变量-变成一个美化的全局类。有人说打破面向对象设计。
给我一些场景,除了使用单例是有意义的良好的老记录器。
当前回答
管理到数据库的连接(或连接池)。
我还会使用它来检索和存储外部配置文件中的信息。
其他回答
只读单例存储一些全局状态(用户语言、帮助文件路径、应用程序路径)是合理的。使用单例控制业务逻辑时要小心——单例几乎总是以多例告终
我认为单例的使用与数据库中的多对一关系是一样的。如果代码中有许多不同的部分需要处理对象的单个实例,那么使用单例就很有意义了。
也许是一个带有代码的示例。
在这里,ConcreteRegistry是一个纸牌游戏中的单例,它允许行为沿着包树向上访问游戏的少数核心接口(即模型、视图、控制器、环境等的外观):
http://www.edmundkirwan.com/servlet/fractal/cs1/frac-cs40.html
Ed.
将特定的基础设施关注点配置为单例或全局变量是非常实用的。我最喜欢的例子是依赖注入框架,它使用单例作为框架的连接点。
在这种情况下,您将依赖于基础设施来简化库的使用并避免不必要的复杂性。
当您想要确保一个类将有一个实例,并且该实例将有一个全局访问点时,您可以使用单例设计模式。
假设您有一个应用程序,它需要数据库来处理CRUD操作。理想情况下,您应该使用与数据库相同的连接对象来访问数据库并执行CRUD操作。
因此,为了确保数据库类有一个对象,并且该对象将在整个应用程序中使用,我们实现了单例设计模式。
确保构造函数是私有的,并且提供了一个静态方法来提供对单例类的单个对象的访问