1

TelerikMVCグリッドからのこのサンプルコードを見てください。

<% Html.Telerik().Grid(Model.InstallerList)
    .Name("InstallerGrid")
    .DataKeys(key => key.Add(c => c.InstallerID))
    .Columns(column =>
    {
        column.Template(action =>
            {%>
                <%= Html.ActionLink("Edit", "Edit", new{ id = action.InstallerID}) %> 
            <%});

        column.Bound(model => model.CompanyName);
        column.Bound(model => model.EmailAddress);
    })
    .Scrollable(scrolling => scrolling.Enabled(true))
    .Pageable(paging => paging.Enabled(true))
    .Sortable(sorting => sorting.Enabled(true))

    .Render(); %>  

さて、このようにするよりも、それについて何が良いのでしょうか。

<%
    var grid = Html.Telerik().Grid(Model.InstallerList);
    grid.Name("IntsallerGrid");
    grid.DataKeys(key => key.Add(c => c.InstallerID));
    // etc. etc.

    %>
4

5 に答える 5

3

実際の違いはありません。この場合、参照を返すことでチェーンを作成できます。利点?それはもっと簡潔で、他の何よりもスタイルに関するものであることを除けば、自分で参照を維持する必要はありません。

Telerikの人たちが、コンポーネントの多くでクライアント側のスクリプトをjQuery(チェーンも)に変換したとき、流暢なインターフェイスが表示され始めたとき、彼らはそのスタイルが好きで、オプションとして提供したと思います。

他の場合では、1つのメソッドが、と同じではない参照または型を返す場合があります。gridたとえば、単にではなくを.OrderBy()返す方法です。これらの場合、結果を設定していないため、動作に潜在的な違いがあります。各ステートメントの例。OrderedQueryableQueryablegrid =

于 2010-08-13T10:50:50.690 に答える
2

同上「人々はこれらを「流暢なインターフェース」と呼んでいます。」

大きな利点は、メソッド、特にコンストラクターで不要なパラメーターを回避することです。たとえば、ケーキにはアイシングを付けることができ、アイシングには言葉を書くことができます。

あなたは行き​​ますか

  Cake cake = new Cake( Icing.None, "" );  // no icing, no words
  Cake birthday = new Cake( Icing.None, "Happy Birthday");  // invalid option!

または素敵な流暢なスタイル。

  Cake cale = new Cake();  // No icing, no words
  Cake birthday = new Cake().Icing(Icing.Chocolate).Word("Happy Birthday"); 
于 2010-08-13T10:54:10.097 に答える
2

Fluentインターフェースは、一種の内部ドメイン固有言語であることが意図されています。うまく実装すると、自然言語の文章のように読むことができます。

マーティン・ファウラーのblikiには、長所と短所を詳細に説明した非常に優れた記事があります。

Fowler(名前を思いついた)は、流暢なインターフェースをより標準的なAPIの上に階層化することを推奨していることに注意してください。流暢なインターフェースはCommandQuerySeparationを壊します。

于 2010-08-13T11:04:04.013 に答える
0

これらは「FluentInterfaces」と呼ばれます。

想定される利点は、読み取り可能性と検出可能性またはコードにありますが、優れたインテリセンスでは、これらはほとんどの利点をもたらさない可能性があります。

コードはよりタイトになり、プログラミングのスタイルはより宣言的になります。つまり、どのように実行したいかではなく、何を実行したいかを言います。この点で、それは抽象化に役立ちます。

結果に関しては、違いはありません。それは個人的な好みの問題であり、ベンダーとしてのTelerikは、ビジネス上意味のある限り多くの選択肢を提供します。

于 2010-08-13T10:50:40.870 に答える
0

これらのメソッドがチェーンする戻りタイプは、必ずしも元のグリッドであるとは限りません。さらに、それらのすべてが、使い終わった後で簡単に表現できる、または役立つとは限りません。メソッドチェーンを使用すると、物事がタイトになり、将来変更しやすくなります。

于 2010-08-13T11:26:00.327 に答える