8 1 1 把行為表示為物件

2021-06-27 08:42:20 字數 602 閱讀 3695

8.1.1 把行為表示為物件

我們先從c# 版本開始,因為在c# 3.0 中,用函式方式處理行為集合,在某種程度上與 f# 類似。在我們討論函式式版本之前,有必要看一下用純粹的物件導向的風格寫同樣的模式。

我們可能會先宣告介面,只有乙個方法,執行檢查,並返回是否失敗。在我們的貸款示例中,返回值為 true 表示,應拒絕貸款。後面,我們會在幾個類中實現這個介面,提供具體的檢查。清單 8.1 顯示了這個介面與簡單的實現。

清單 8.1 用物件導向風格檢查是否應該貸款 (c#)

inte***ce iclienttest {

bool isclientrisky(client client);    [1]

class testyearsinjob : iclienttest {  <-- 實現乙個檢查

public bool isclientrisky(clientclient) {

return client.yearsinjob< 2;    [2]

處理像這樣實現的檢查,需要建立包含介面型別元[1]素(例如,list)的集合,然後,把實現該介面的每個類的例項新增到集合中。我們必須為每個檢查建立單獨的類,儘管條件本身是乙個簡單的緊湊的表示式[2]。

8 11 應用舉例

8.11 應用舉例 統計每個學生三門考試課程總成績,程式執行時,使用者輸入學生相關資訊,程式將輸出總成績 public class example8 24 catch inputmismatchexception e system.out.println name 總成績 sum system.ou...

科研日記8 11

因為買的耦合器還沒有到,所以目前一是等器件到了,二是繼續看一下關於窄線寬自注入可調雷射器的 和組裡的其他博士碩士 目前組裡對窄線寬和連續調諧的探索還不成熟,這都是我下一步前進的方向。連續調諧有調模的問題,窄線寬目前是線寬目標是100khz以下,且雜訊要小。對於窄線寬目前傾向於加外腔的方法來壓窄線寬,...

8 1 2 在 C 中把行為表示成函式

8.1.2 在 c 中把行為表示成函式 我們前面提到過,以物件導向的方式理解函式,就是把它認為是有乙個單獨方法的介面。如果我們看一下清單 8.1 的 可以看到 iclienttest 就是這樣宣告的。這意味著,這個測試可以很容易地表示成乙個簡單的函式。在 c 中,我們可以使用 lambda 函式來寫...