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

1

簡単に言えば、状態は複数のメソッド呼び出しの間に保存されるデータです。したがって、何も保存して後で戻る必要がないものについては、静的メソッドを使用してください。それが私のお勧めです。

クラスにカプセル化された状態は、制御するクラスのメソッドに制限できるため、その状態へのアクセス方法を制御する場合に特に役立ちます。これにより、状態に関連するコードを簡単に確認できるため、状態を整理して管理しやすくすることができます。

于 2013-08-25T22:22:00.097 に答える
1

静的クラスは、メソッドがすべて静的であり、メソッドがクラスから作成されたオブジェクトではなくクラスに属しているクラスです。静的クラスは通常、オブジェクトに値を保持して後で変更する必要はなく、代わりに値が渡されることを期待し、常に同じ計算または操作をメソッドに実行させたい場合に使用されます。

シングルトンは、通常のクラスに単一のオブジェクトが作成され、そのオブジェクトが再利用される設計パターンです。シングルトンは処理する値を持つ場合がありますが、オブジェクトは一度しか作成されないため、シングルトンとやり取りする他のすべてのオブジェクトは同じ値から描画されます。シングルトンは、アプリケーションの存続期間中に変更する必要があるが共有する必要がある値がある場合、または値を保存して後で取得する必要があるメソッドがある場合に役立ちます。

于 2013-08-25T22:22:38.980 に答える
1

単に

メソッドがクラス内のグローバル変数にアクセスしない場合の静的クラス

リストなどのグローバル変数がある場合はシングルトン

于 2013-08-25T22:32:19.213 に答える