WPF方法在多个页面上重用 - 我应该使用静态类还是单例?

时间:2013-08-25 22:09:04

标签: c#

我正在阅读单例和静态类之间的区别,但只有我发现不同的是单例给你状态,可以实现接口和派生,而静态类没有这些东西。我不(可能不会)需要实现接口或派生类,所以我认为静态类是正确的。但我想了解更多有关此对象状态与静态类无状态事物的信息。你如何定义对象的状态?状态是否可以重复用于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);
    }

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

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

简单地

静态类,如果方法不访问类

中的全局变量

如果您有全局变量(例如列表

),则单例