簡體   English   中英

流利的接口:避免在泛型類型上使用過多的參數

[英]Fluent Interfaces: Avoid Excessive Parameters On Generic Types

我正在設計一組通用接口,以闡明某些報告的結構。

為了達到這個目的,我使用泛型,並且我必須在不同的流利的類之間傳遞三個泛型參數。 有時我必須通過其中的四個,但這都是由框架完成的,其背后的想法是,在足夠重視的情況下,有可能擁有一個完整的接口而根本不必鍵入任何泛型。

一個例子是

        t1.Schedule.ForSession(Session).
            WithName("TestName").
            Map.
            Args.FromResultsOfTask(t2).UsingDefaultMappings().
            And.
            WaitOnCompletionOfTask(t4);

運行FXCop會產生無數此類投訴:

Error, Certainty 85, for AvoidExcessiveParametersOnGenericTypes

我正在使用泛型創建“類型安全”(也許類型識別更正確)接口,可以在其中定義映射

...
Map.Args.From(myObject).
    Mapping(x=>x.MyProperty).To(y=>y.ArgsProperty).
...

我可以采取哪些策略來減少泛型的使用並仍然實現編譯安全的自定義映射?

有沒有人成功地利用泛型(並且可以為我提供很多示例)來實現流暢的界面?

在我看來,您應該只對代碼禁止FXCop警告。 如果自然有三個泛型類型參數,那么就是生命。 IMO,請仔細記錄下來,應該沒問題。

像FXCop這樣的工具會有所幫助,而不是成為代碼的最終仲裁者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM