2011-12-09 39 views
0

如果我有WinForm,相應的WinForm,有一個業務邏輯類說類服務器。什麼應該是類設計

類服務器做基於在窗體控件輸入值的一些計算,需要將該信息傳遞到另一個階級說類客戶端。

我做的解決方案是,我使用了Mediator Pattern。

class Server 
{ 
    Mediator m = new Mediator(); 
    m.IValue=txtValue.text; 
    Client c =new Client(m); 

} 

    class Mediator 
    { 
     private int iValue 
     public int IValue{get,set}; 
    } 

    class Client 
    { 
     Mediator m; 
     private int val; 
     Client(Mediator m) 
     { 
     this.m=m 
     } 
     val = m.IValue; 
    } 

有沒有其他方法可以做到這一點?

+0

我不確定你在問什麼。你可以更具體一些,並提供更多的信息,你爲什麼看中介模式,你希望用它來完成什麼? –

+0

想象一下客戶端需要返回多個函數調用的vaues的情況。 – user1006897

+0

這還沒有足夠的信息來找出你想要做的事情。 –

回答

1

我認爲如果只是簡單地分離實體會更好。

假設,類信息是業務邏輯將要處理的內容,然後傳遞給客戶端。

繼續如下。

Interface IInformation 
{ 
} 

class Info: IInformation 
{ 
} 

class Server 
{ 
    ProcessInfo(IInformation infoUserInput) 
    { 
    //business logic 
    . 
    . 
    //pass to client 
    client c = new client(infoUserInput); 
    } 
} 


class client 
{ 
    IInformation revcieveInfo; 
    client(IInformation rec) 
    { 
     revcieveInfo = rec; 
    } 
} 
0

每當你需要比定義的類型(intstringIEnumberable<T>,或其他),你需要創建自己的類來定義那些你需要返回給調用者字段返回更多。

如果,例如,需要約一個地址返回的所有信息,呼叫者,它您可以創建一個Address類。調用者將調用該方法,並返回一個Address對象。

public class Address 
{ 
    public string Street { get; set; } 
    public string Unit { get; set; } 
    public string City { get; set; } 
    public string Region { get; set; } 
    public string PostalCode { get; set; } 
} 

public Address GetSomeAddress() 
{ 
    // Perform the logic to either retrieve or create the address 
    var result = new Address(); 

    // Perform some action on it 
    result.Street = "123 No Place"; 

    // and return it 
    return result; 
} 

因爲你沒有說明在你工作的領域,沒有太大的幫助,任何人都可以提供的是外面。如果你可以發佈更多關於你的域名的信息(你試圖完成什麼),那麼你可以得到更詳細的答案。

沒有更多的信息,我也看不出爲什麼你使用/擔心介體模式。

0

聽起來像是你可能有興趣閱讀有關Presentation Model設計模式。我認爲MVC,PM和MVVM是中介模式的形式,它們都是從視圖中獲取業務邏輯的方法。

另外,如果你剛剛開始C#,你可能會考慮研究學習WPF。 MVVM模式有點出入,有很多很好的教程和例子。我在一篇博客文章中寫下了我的經驗on learning WPF and MVVM,它有你可能會覺得有幫助的鏈接。這是一個誇張地說,我已經在6個月後的一個週末「學會」了這一點,而且我仍然在學習它,但我認爲如果您觀看各種截屏視頻,您可以在週末瞭解基本知識。

相關問題