私はあまりにも多くのことをやっていると思う大きな「マネージャー」クラスを持っていますが、それをより論理的な単位に分割する方法はわかりません。大規模で膨大なクラスをより小さなクラスに分割する方法を教えてください。
一般クラスには、基本的には、以下の方法で構成されて話す:
class FooBarManager { GetFooEntities(); AddFooEntity(..); UpdateFooEntity(..); SubmitFooEntity(..); GetFooTypes(); GetBarEntities(); }
マネージャークラスは私のビジネスロジックの一部であり、すべてのCRUDが含まれているデータ・アクセス・レベルで別の「マネージャ」クラスのインスタンスをconstainsすべてのエンティティの操作
データアクセスレイヤーから異なるエンティティを取得しているため、データエンティティをビジネスエンティティに変換するためのマネージャクラス以外の場所にコンバーターがあります。
マネージャクラスの理由は、私がunittestingを行うときに、それぞれの "マネージャ"クラスを模擬したいと思ったからです。各マネージャクラスは現在1000以上のlocであり、それぞれ40〜50のメソッドを含んでいます。私はそれらがかなり肥大していると考えて、すべてのデータアクセスロジックを単一のクラスに入れるのは難しいと感じています。私は何をすべきですか?
どのように私はそれらを分割について行くと私は使用する必要があります特定のデザインパターンはありますか?
OKは論理的ですが、顧客のすべての注文を取得する必要があるビジネス層のxManagerでどうやったらいいですか? CustomerManagerとOrderManagerの両方への参照がありますか?顧客から電話を受けるときにその顧客の注文を取得しますか?マネージャーの多くのように思える? – Xerx
あなたが今持っていることを考えれば、それは私がそれをやる方法です。どの事業者が業務を担当しているかを考えてください。実際の顧客に注文のリストを提供することを要求しない場合は、注文システムに顧客の注文リストを提供するように依頼します。 –
悪い考えであるManagerクラスについてのメモを追加した場合は、これを+1します... – metao