在多个页面上重用的WPF方法——我应该使用静态类还是singleton



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

回到主题。我有一种方法,可以对标签进行动画化,用于不同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);
    }

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

感谢一些建议。非常感谢。

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

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

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

简单地说,state是存储在多个方法调用之间的数据。因此,对于不需要存储任何内容并稍后返回的东西,只需使用静态方法即可。这将是我在这里的建议。

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

简单

静态类if方法不访问类中的全局变量

Singleton,如果您有全局变量,如列表

最新更新