1

我正在阅读单例和静态类之间的区别,但我发现唯一不同的是单例给你状态,可以实现接口和派生,而静态类没有这些东西。我不需要(可能不需要)实现接口或从类派生,所以我认为静态类是正确的做法。但我想更多地了解这个对象状态与静态类无状态的东西。您将如何定义对象的状态?状态是否意味着可重用 1 个 WPF 页面中的事件?这可能是一个愚蠢的问题,但我从不遵循理论,我只是编写代码来工作:) 这就是我现在学习它们的原因。

回到主题。我有 1 种方法,可以为标签设置动画,该方法用于不同 WPF 页面的不同标签:

    private void SetUpAnimation()
    {
        DoubleAnimation doubleAnimation = new DoubleAnimation();
        doubleAnimation.From = -LabelNameSong.ActualWidth;
        doubleAnimation.To = CanMain.ActualWidth;
        doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
        doubleAnimation.Duration = new Duration(TimeSpan.Parse("0:0:10"));
        LabelNameSong.BeginAnimation(Canvas.RightProperty, doubleAnimation);
    }

由于我不想在每一页上复制粘贴它,我正在考虑创建帮助类、静态类或实用程序类(与我理解的相同)来拥有这个方法,我会在需要的任何地方调用它(当然将正确的标签作为参数传递)。

一些建议表示赞赏。谢谢你。

4

4 回答 4

2

我会选择静态的,因为不同标签的动画之间没有交互。

于 2013-08-25T22:12:40.973 回答
1

简而言之,状态是存储在多个方法调用之间的数据。所以对于不需要存储任何东西并在以后返回的东西,只需使用静态方法即可。这将是我在这里的建议。

当您想要控制如何访问该状态时,封装在类中的状态特别有用,因为您可以将其限制为您控制的类的方法。这有助于保持状态整洁且易于管理,因为您可以轻松查看与其相关的代码。

于 2013-08-25T22:22:00.097 回答
1

静态类是一个类,其中方法都是静态的,方法属于该类而不是从该类创建的对象。当您不需要对象来保存值并在以后修改它们,而是希望传入值并且只希望该方法执行始终相同的计算或操作时,通常会使用静态类。

单例是一种设计模式,普通类创建了一个对象,并且该对象被重用。一个单例可能有它处理的值,但由于该对象只创建一次,与单例交互的每个其他对象都将从相同的值中提取。如果您有可能需要在应用程序的生命周期内更改但需要共享的值,或者如果您有需要稍后存储和检索值的方法,则单例很有用。

于 2013-08-25T22:22:38.980 回答
1

Simply

Static class if methods do not access global variables in the class

Singleton if you have global variables such as a list

于 2013-08-25T22:32:19.213 回答