-
06-09-2019 - |
質問
また、最近に見る変約 作成方法は、DSLを堪能 という必要はありませんの理由うなアプローチ(少なくとも指定された。
類のウェルス-マネジメント-サれた画像リサイズクラスで指定の入力画像サイズを変更で保存してください出力-ファイルの構文(C#):
Sizer sizer = new Sizer();
sizer.FromImage(inputImage)
.ToLocation(outputImage)
.ReduceByPercent(50)
.OutputImageFormat(ImageFormat.Jpeg)
.Save();
う必要はありませんが、こうには"従来の"方法の一部のパラメータ:
sizer.ResizeImage(inputImage, outputImage, 0.5, ImageFormat.Jpeg);
からユーザビリティの視点で、このように多くの使いやすかを明確に分かるのでその方法を期待して入力します。のに対し、堪能なインタフェースものの中から省略/忘れパラメータの方法、例えば:
sizer.ToLocation(outputImage).Save();
なに私の質問:
1 - あるもの利便性を向上させるための堪能なインタフェースえ、ユーザーか期待が寄せられていま)?
2 - この堪能なスアプローチだけの交換のために既存の方法でパラメータクライアントまで、フルのC#?う名前のパラメータを堪能界面の老朽化などのようなものobjective-Cには、:
sizer.Resize(from:input, to:output, resizeBy:0.5, ..)
3 - が堪能な界面上だけで使用で現在の人気?
4 - これだけの悪い例が選ばれた類のウェルス-マネジメント-サ?その場合、教えて何のメリットこのようなアプローチは、意味はあるのに使用します。
ちなみ:知ってjquery、これで簡単なもんなのコメントとその他の既存の例です。
私はりみ(一般)コメントを教えてくれるので助かりますか(例えば)時を堪能なインターフェース(の代わりに、古典的クラス図書館、何に注意し実施できる。
解決
2-この堪能なスアプローチ ただの交換のための 既存の方法でパラメータ C#?う名前のパラメータを堪能 界面の老朽化など何か 類似のobjective-Cには、:
もあります。を堪能面で大量の柔軟性です。ものでは実現できなかったとの名前のパラメータは:
sizer.FromImage(i)
.ReduceByPercent(x)
.Pixalize()
.ReduceByPercent(x)
.OutputImageFormat(ImageFormat.Jpeg)
.ToLocation(o)
.Save();
のFromImage,ToLocationとOutputImageFormat流体におけるインタフェース、香ります。をいただくこともできましたがいもは、これらのテーマに沿ったと思うのはより鮮明に見せなければならない.
new Sizer("bob.jpeg")
.ReduceByPercent(x)
.Pixalize()
.ReduceByPercent(x)
.Save("file.jpeg",ImageFormat.Jpeg);
堪能なインタフェースと同様の問題に多くのプログラミング技術て、悪用された知識の収納庫は十分使わと思う時にこの技術を使って効果的に果たしていくことでより豊かに、より簡潔なプログラミングモデルでもStringBuilderするとともに、それを支援す
var sb = new StringBuilder();
sb.AppendLine("Hello")
.AppendLine("World");
他のヒント
すると思うので堪能インタフェースは若干のスイーツが人気の洋菓子店といってくださいというふうに思ってることにありがとうございましたかなどを紹介していきます。
見堪能面は特に強いときの構築の複雑なモデルです。モデルだってば複雑な関係インスタンスを生成する。に堪能なインタフェースはその方法の開発を正しく構築インスタンスのセマンティックモデルです。などで堪能インタフェースはその絶好の機会となることでしょう別の力学と関係のモデルからの"文法"ご使用になることを構築し、モデルは本質的に遮蔽容からのエンドユーザーの削減にご用意の動詞をもち当該特定のシナリオ。
おの例のように見えるようなものを失わせないアイテムです。
私は最近実施しているが堪能なインターフェースのSplitterContainerからWindowsます。世界の意味モデルの階層のコントロールはやや複雑に正常に施工性が向上します。を提供する小さな堪能なAPIできますが、今declaratively特急のようにSplitterContainerべきます。使用量は以下のようになりま
var s = new SplitBoxSetup();
s.AddVerticalSplit()
.PanelOne().PlaceControl(()=> new Label())
.PanelTwo()
.AddHorizontalSplit()
.PanelOne().PlaceControl(()=> new Label())
.PanelTwo().PlaceControl(()=> new Panel());
form.Controls.Add(s.TopControl);
私は現在の複雑な力学の管理階層のカップルの動詞に関連します。
武器agiは、dexで下がらないboxerぐ
発生していると考えること
sizer.ResizeImage(inputImage, outputImage, 0.5, ImageFormat.Jpeg);
何をご利用いただいていたお客様から変数名:
sizer.ResizeImage(i, o, x, ImageFormat.Jpeg);
想像だけを印刷す。この難解からの引数はしていないアクセス方法に署名を表します。
に堪能なインタフェースは明:
sizer.FromImage(i)
.ToLocation(o)
.ReduceByPercent(x)
.OutputImageFormat(ImageFormat.Jpeg)
.Save();
また、注文の方法は重要ではありません。する場合と同じ結果が得られます:
sizer.FromImage(i)
.ReduceByPercent(x)
.OutputImageFormat(ImageFormat.Jpeg)
.ToLocation(o)
.Save();
また、おそらくがデフォルトの出力画像フォーマットを削減できるようにな
sizer.FromImage(i)
.ToLocation(o)
.Save();
この過負荷のコンストラクタを、同様の効果が得られます。
でに実施います。
のためのオブジェクトな操作と同じ項目、あるか間違っているのです。うC++ストリームに分類されます。彼らは、このインタフェース。毎動作し、ストリームを返しまもできますのでチェーンともストリーム動作します。
だってLINQ、操作オブジェクトの、この一部です。
しかし、デザインには、注意しなくてはならない。何をすべき行動するしたい場合は逸脱する途中ですか?(IE,
var obj1 = object.Shrink(0.50); // obj1 is now 50% of obj2
var obj2 = object.Shrink(0.75); // is ojb2 now 75% of ojb1 or is it 75% of the original?
がobj2たの75%はオブジェクトを、その手段だけをオブジェクトのコピーを毎時間、スーパーマーケットは多くの場合のようにいう二つのインスタンスが同じものが若干異なる).
場合の方法で操作を元のオブジェクト、このような構文はややdisingenuous.その操作は、オブジェクトの代わりに操作を変更オブジェクトです。
ないすべてのクラスは、このようなものではありませんし、意味なこのようなデザイン。例えば、このスタイルデザインの持していない商品については、有用性、デザインのハードドライバは、コアのGUIアプリケーションのた.どのデザインは何が何かデータを操作このパターンになると述べています。
きを読む Domain Driven Design
エリック-マーティノー(EricエヴァンスへのアなぜDSLは良好と考えられるデザインです。
のなどが代表的な例としてあげられ、最高の練習のアドバイスやデザインパターンオススメです。
を採用することも可能ですの変化に堪能なインターフェースを実施特定の組み合わせオプションパラメータ例えばひょうを必要とする少なくとも一つのパラメータからのグループが存在する必要がある場合に特定のパラメータを指定することにより、その他のパラメータが必要。例えば、一つを機能と同様Enumerable.範囲が、どのような書式をIntRange.から(5).まで(19)はIntRange.から(5).LessThan(10).Stepby(2)またはIntRange(3).Count(19).StepBy(17).コンパイル時の施行過度-複雑なパラメータを要求する必要があるかもしれな定義というのは本当に面倒数中間値構造や授業でのアプローチできる場合に役立つ簡単な例です。
さらには @サム-サフラン's suggestionに関する柔軟性の堪能なインターフェースを追加する新しい動作
する必要が生じた場合は、必新しい操作などPixalize(),その方法は複数のパラメータ"のシナリオに必要となる新しいパラメータに追加する方法である。この場合にその修正が必要になる毎に、このメソッドを呼び出しのコードベース加えるため、値がこの新しいパラメータ(ない限り、言語使用できるオプションパラメータで指定)になります。
そのため、一することができたの堪能なインタフェースを制限する影響の将来変化します。