相关疑难解决方法(0)

将常量类作为参数传递并存储它

伪代码

提供的片段将被视为伪代码.如果有一个不同的解决方案是解决这个问题的标准方法,我愿意接受.

这与预期用量有关:

一些澄清:

  • 每个应用程序将使用一个且仅一个配置.它不会在运行时更改.
  • Main.java不能允许@Override.
  • Configuration.java不能是一个Interface默认值应该给不被覆盖的字段.
  • Configuration.java将从其目前的两个领域大幅增长.渲染构建器模式非常混乱.

Configuration.java

public class Configuration
{
    public static int getFoo () { return 1; }
    public static int getBar () { return 2; }
}
Run Code Online (Sandbox Code Playgroud)

UserDefinedConfiguration.java

public class UserDefinedConfiguration extends Configuration
{
    @Override
    public static int getFoo () { return 3; }
}
Run Code Online (Sandbox Code Playgroud)

Main.java

public final class Main {
    private final Configuration config;

    // default configuration
    public Main () {
        this (Configuration.class);
    }

    // …
Run Code Online (Sandbox Code Playgroud)

java

7
推荐指数
1
解决办法
120
查看次数

Singleton类有什么优势?

在java中,当我们创建一个类单例时,它只为每个应用程序创建该类的一个实例,而不是创建单例类,如果我们创建该类静态的所有方法和变量,那么它也只会创建该静态成员的一个实例.那么单例类对类的所有静态成员有什么好处?

java singleton static

6
推荐指数
1
解决办法
4167
查看次数

Php:singleton VS全静态类?什么时候用?

我理解singleton强制执行一次类.但是如果我不直接访问它,为什么要存在一个实例呢?为什么这种模式不仅仅是使用静态方法和数据的完全静态类?

php oop singleton static class

5
推荐指数
2
解决办法
3097
查看次数

为什么要使用单例模式?

我是.NET开发人员。我接受了几次采访,并且多次遇到一个问题:“ Singleton Design模式在现实中的用途是什么?”。但是我的问题是“为什么我们使用单例,静态关键字就足够了?” 因为单例设计模式的目的是防止创建双重实例。如果我将single_class标记为static,那么我是否也可以实现相同的目标。

singleton static design-patterns

5
推荐指数
1
解决办法
3681
查看次数

单例中的成员变量是否应声明为静态?

环顾网络,我已经看到了这种简单的模式,该模式实现了(线程安全的)单例(在C#中)。

public sealed class MySingleton
{
    private static readonly MySingleton _instance = new MySingleton();

    private string[] _data = new string[10];

    // Private constructor, so no outsiders have access.
    private MySingleton()
    {
        // Initialize _data member here
    }

    // Static method to provide access to instance
    public static MySingleton Instance
    {
      get { return _instance; }
    }

    public string GetStringCount
    {
        return _data.Length;
    }

}
Run Code Online (Sandbox Code Playgroud)

我知道该_instance成员需要声明为静态,因为它是从static Instance()方法访问的。

但是是否应将其他成员声明为静态成员?根据定义,单例仅存在一次,因此成员也只能存在一次(对于单个实例),就像静态变量仅存在一次一样。

我应该声明_data为静态吗?

  • 功能上会有区别吗?
  • 有任何性能差异吗?
  • 还有其他原因喜欢静态还是非静态?

c# singleton

5
推荐指数
1
解决办法
5853
查看次数

使用Java中的静态成员和方法的Singleton v/s类

可能重复:
静态类和单例模式之间的区别?

为什么一个人只需要一个实例?使用具有静态成员变量和静态方法的类可以实现相同的目的.

据我所知,可能有两种可能的答案 -

  1. 当你的类需要有状态而你只需要一个对象时.从设计的角度来看,具有静态方法和变量的类被认为是Utility类,不应该保持任何状态.

  2. 如果您的类需要参与多态,并且您只想要继承树中的类的一个对象.

如果某人可以提供现实生活场景中的示例或者Singleton对象需要参与多态/继承的任何Java API,那将会非常有用吗?

java singleton design-patterns

5
推荐指数
1
解决办法
365
查看次数

使用静态成员和方法的单身人士?

我们可以使用静态方法和成员元素复制Singleton行为.除了序列化只使用静态Body实现单例的危害是什么.

java oop

5
推荐指数
1
解决办法
241
查看次数

接口静态方法的替代方法

我知道静态方法对于接口来说是不正确的(请参阅:为什么 C# 不允许静态方法实现接口?)但遇到了这样的情况:我有一个对象实现了接口的所有方法,其中所有方法都可以静态的,所以我想我的设计一定是错误的。

问题是,我看不到任何替代方案

我的接口IDataSerializer是由几个类实现的。一种对 XML 进行反序列化,一种对 JSON 进行序列化,等等。所有这些类都实现相同的功能,并且没有任何类具有任何“状态数据”(成员等),但最终都会输出相同类型的对象。

例如,XML 类:

public class MyXmlSerializer : IDataSerializer
{
    public string SerializeFoo(object foo)
    { 
        // uses .Net XML serialzer to serialize foo
    }

    public object DeserializeFoo(string foo)
    { 
        // uses .NET XML serializer to deserialize foo
    }

    // Object type returned by above methods is only ever 
    // used by following method which returns a type available 
    // to all IDataSerializer implementations as this is 
    // the data …
Run Code Online (Sandbox Code Playgroud)

c# serialization interface deserialization

5
推荐指数
1
解决办法
7762
查看次数

单身设计模式与静态类

当Singleton设计模式优于静态类并且静态类优于Singleton设计模式时,有哪些情况?

c# design-patterns

3
推荐指数
2
解决办法
4813
查看次数

在 ASP.NET Core 中创建单例服务的正确方法 - 是否必须使用 static 关键字?

这真的让我很困惑。没有什么可以阻止我们创建具有实例字段和实例方法的类,而不是创建具有静态字段和静态方法的类。两者都可以注册为单例。

是否有解决此问题的首选方法,为什么?

编辑:我不是在询问使用单例模式创建一个类。我问的是单例依赖注入类与注入同一个类但具有静态定义的成员/字段/方法/属性。

c# singleton static dependency-injection .net-core

3
推荐指数
1
解决办法
2万
查看次数