2009-02-16 94 views
0

我在我的應用程序中有以下類結構(縮寫爲了時間,名稱已更改)。當我編寫代碼時,我覺得Action1和Action2之間的相似之處應該得到某種概括。我已經提供了UML類圖和相關部分(接口除外,我將在下面的代碼中介紹這些接口)。我想知道如果有人有關於如何使這個「更好」的架構/類設計的想法。此外,非常相似的操作可以在近期迭代中實施。優化類結構

UML Diagram http://img16.imageshack.us/img16/2569/mainmm2.jpg

代碼接口

public IActor1 
{ 
    public Property1 { get; set; } 
    public Property2 { get; set; } 
} 

public IActor2 
{ 
    public Property3 { get; set; } 
    public Property2 { get; set; } 
} 

回答

0

我在此先看看想出了以下內容:

超載的接口,因爲兩者具有界面已經實施。然後,創建一個Action接口,該接口封裝Action1的List,List和ActionType屬性,使Action2具有一個空的Action Action屬性。然而,這看起來非常混亂,並且不是非常可擴展的(因爲將來有新的行動計劃)

0

我不確定這是否回答你的問題,但是在這裏。

首先,IActor1和IActor2應該與共享屬性的公共基本接口:

public interface IActorBase { 
    public Property2 { get; set; } 
} 

現在,操作應該有一個通用的基礎

public abstract class ActionBase<TActor> where TActor: IActorBase { 
    public List<String> StringList { get; set; } 
    public List<TActor> ActorList { get; set; } 
} 

然後,你實現你的措施1和措施2因此:

public class Action2 : ActionBase<IActor2> { } 

public class Action1 : ActionBase<IActor1> { 
    public enum Action1Type Type { get; set; } 
} 

我不知道你可以在這裏做什麼w沒有更多的細節...