0

私はwinforms画面を構築しています。画面では、それはサブ1-1に関連するデータを、画面をポップアップして表示されますsub-1-1複数の画面を持つUIのサービス層

 
Category1 
    Sub-1-1 
    Sub-1-2 
    Sub-1-3 
Category2 
    Sub-2-1 

クリックして表示されます。サブ1-2、...などと同じです。したがって、上記のサンプルには5つのフォーム(1つのメインフォーム+ 4つのポップアップフォーム(実際には約30のサブカテゴリがあります))があります。

私にはCategories,sub-1-1,sub-1-2、...、sub-2-1のモデルがあります。私はサービス層を書いています。私はどうすればいいですか?

public class ServiceLayer 
{ 
    CategoriesModel GetCategories(); 
    Sub11Model GetSub11(); 
    Sub12Model GetSub12(); 
    Sub13Model GetSub13(); 
    Sub21Model GetSub21(); 
    ..... 
} 

また、各フォームには今サービスクラスインスタンスがありますか?

public class ICategoryService { ... } 
public class ISubCategoryService<T> 
{ 
    T GetSub(); 
} 

var sub11 = new SubService<Sub11Model>(); 
var sub12 = new SubService<Sub12Model>(); 
var sub13 = new SubService<Sub13Model>(); 
var sub21 = new SubService<Sub21Model>(); 
.... 

答えて

1

最初のものはGODクラスのように見え、おそらくSOLID原則のほとんどに違反することになります。ただそれがfacadeであっても、コードをリファクタリングするのが難しくなります。

もちろん、one responsibilityしか扱っていないより小さいインターフェイスを使用する必要があります。

関連する問題