私はコード内でクラスを使用する正しい方法を学びたいと思っています。顧客の集合、動物から継承する犬などのような明白なものではないときにです。main/form1以外のクラスを試してみるのは悪いフォームですか?
コードの大部分をInstaller.cs
,Downloader.cs
,UiManager.cs
などの「機能」。私がこれらのクラスをそれぞれのプロパティとメソッドと相互作用させるために見つけることができる唯一の方法は、それらをすべて静的にすることです。別の質問で言われたことは間違った方法です。
クラスは、私はまだ理解していないことをお互いに話すようにする方法があります:
だから、私の問題は、3つの事の一つです。
クラスは決してお互いに話してはいけませんが、一度だけのアクションを実行してから、
main/form1
に何かを戻します。メインクラスは一度限りのアクションのために別のクラスに渡すことができます。クラスは本当にたくさんのインスタンスを作成するのに役立ちます。クラスは、メインクラスから大量の機能を抽象化するために必要なものです。
私が見つけることができると私は見ての講義だけでどのようにクラス作業を教えてくれているように見えるすべてのチュートリアルではなく、いつ、どのように実際の製品にそれらを使用します。
EDIT - より具体的な例:
私はアプリケーション全体の中心であり、見および/またはすべてのクラスによって、潜在的に変更する必要が1つの文字列を持っていると言います。 1つのクラスにすべてを持たせたり、静的にすることなく、その情報をコードの周りに移動するにはどうすればよいですか?
静的にすることなく、その文字列をForm1
に保存する方法はありません(フォームのすべてのイベントと関数は、それをクラスに渡すためにはそれを見る必要があるため)。
文字列とクラス全体を静的にする必要なく、文字列を別のクラスに配置する方法がわかりません。そのため、他のクラスでも参照できます。
多分、実際にクラスをインスタンス化したり、オブジェクトを相互に作用させることについて、私が見逃していることがあります。
これは大きな質問です、簡単には答えられないものがあります。 OOPと[Design Patterns](http://www.amazon.co.uk/Head-First-Design-Patterns-Freeman/dp/0596007124/ref=sr_1_fkmr0_1?ie=UTF8&qid=1346955994&sr=8)に関するいくつかの書籍を読むことを検討してください。 -1-fkmr0)。 –
「本に答えるように書くことができたら...」と投票してください。もう1組の本はTDDに関する本です。私。いくつかここに参照されてhttp://stackoverflow.com/questions/880401/what-book-on-tdd-for-c-sharp-with-treatment-of-mocks。 –
本当に大きな質問です。うまくいけば少なくともあなたの_classes_はお互いに話すべきではないと考えていますが、それらのクラスからインスタンス化された_objects_は確かに可能です。もちろん、サポート性の理由から、オブジェクト間の依存関係を最小限に抑えたいと思うでしょう。 「要求する、インスタンス化しない」のような経験則に従えば、クラスAの関数がクラスBのインスタンスを必要とする場合、そのクラスに内部で作成するのではなく、クラスBのインスタンスを作成する必要があります。もちろん、これ以上のものはありません。 – David