OOPの適用を学ぶための最初のステップは、一般的な機能とデータをクラスに収集することです。最初は素晴らしい仕事をしませんが、良くなります。基本に立ち返ることについてのCodeMagazineの最近の記事は、これをうまく表現しています。
ソリューション内の実物を表す実オブジェクト(になるクラス)の作成を試み始めます。(これには派手な名前がありますが、これも非常に基本的な名前です。)これは、便利でテーマに関連する関数のユーティリティクラスを作成しているわけではありません。オブジェクトに保持されているデータが、そのオブジェクトのメソッドを呼び出すときにパラメーターを保存するように調整してください。コミュニティ内に実際に存在するオブジェクトを考えてください。それらをパーソナライズします。クラスの機能を使用しているときに、クラスで何が起こっているのかを気にしないように配置します。
最初は、これらすべてのデザインパターンについて心配する必要はありません。学んだ基本的なOOPの概念を最初に実践することをお勧めします。これらのパターンに焦点を合わせると、多くの人がOOPの哲学について実際に考えることをスキップし、代わりに事前にパッケージ化された計画に自分の状況を詰め込もうとします。エンターテインメントやアイデアの「デザインパターン」について読んでください。後で、それらを実際に研究して、それらのいくつかを具体的に実装しようとするでしょう。
要するに、あなたは飛び込んで、あなたが学んだことを適用し始めなければなりません。良いデザインを作る前に、悪いデザインを作る必要があるので、心配しないでください。
質問者からのコメントに応じて編集する:次のステップは、クラス間の関係に集中することかもしれないと思います。たとえば、ロジックでCustomerオブジェクトを使用すると、関連するOrderオブジェクトを取得するために労力を費やす必要はありません。oCustomer.Orders
を返すプロパティを作成しますList<Order>
。(これはac#の例です。)このプロパティでは、すべての顧客の注文を取得し、それらをリストオブジェクトに入れ、プロパティが再度呼び出された場合に備えてプライベート変数に保持し、そのリストオブジェクトを返します。すでにこれを行っている場合は、次に試すのが難しい新しいことを探してください。おそらく、顧客が最初に注文した日付を頻繁に見つける必要があります。次に、から継承するOrdersクラスを作成しCollection<order>
て、基本を置き換えますList<order>
、プロパティFirstOrderを追加します。その後、行うことができますvar FirstOrderDate = oCustomer.Orders.FirstOrder.OrderDate
。
次に難しい新しいことをやろうとし続けてください。メンバーを継承して追加します。子クラスで基本クラスを作成します。基本クラスのメンバーをオーバーライドします。カスタムコレクションを使用して使いこなしてください。
使用しているオブジェクトモデルから学びます。直感的で使いやすいものを見つけたら、そのようにしてください!キャリアの早い段階で、直感的で簡単なMS-wordオブジェクトモデルを幅広く使用する必要がありました。私が自分のライブラリを作ったとき、私はその感覚を複製しようとしました。結果は良かった。
最終的にパターンを研究します。あなたがそれらに圧倒されないように私が忠告する限り、それらは素晴らしいアイデアの源であり、そして最も重要なことに試してみるものです。(一般的な「パターン」の名前を知ることは、コミュニケーションの目的にも役立ちます。)たとえば、プラグインモデルを見ると、インターフェイスの概念は非常に理にかなっています。