@kdmsnr ロールをトレイトで定義すると再利用しやすくなる、、のかなあ。強いて言えばデータに複数のロールを編み込むのはアダプタでは難しそう。。
2012-05-31 23:24:15@yojik_ データのほうが固定してるので、そっちからロールを参照したいんだと思う。ロールはユースケースなので流動的。って、理解で合ってんのかな……。
2012-05-31 23:30:05@kdmsnr @yojik_ DCI全然理解できてないですがcopeの論文読んだ感じだと、ユースケースが違ってもデータの振る舞いにパタンのようなモノがでてくるから、それをデータから剥がして、使うときはデータに入れたり抜いたりしたいのかなと。なので、トレイトは有効だと思ってます
2012-05-31 23:36:47@takkanm @kdmsnr a = new Account with TransferSource みたいにデータにロールを組み込むのと、a = TransferSource(new SavingsAccount())、素直にアダプタにするの、違いはどこにあるんだろうという
2012-05-31 23:48:34ロール -> データ という依存関係自体はロールをトレイトにした場合でも、ロールをアダプタオブジェクトにした場合でもかわらないし、むしろアダプタの方が動的にできるメリットがある気がする。。 逆に静的に解決するメリットというのがあるのかなぁ。
2012-05-31 23:50:51コンテキストを抜けた時にロールが剥がれるってのはなかなか面白いけど、ホントにそれ使うかって言われるとよくわかんない
2012-05-31 23:55:06@yojik_ @kdmsnr traitならコンテキストが変わる際にデータから振る舞いを抜いて使いまわしやすいのかなと。アダプタだと生成後につけかえるのが大変そうなイメージです。ただし、この意見とほぼ同じで実際使うかどうかはわかんない http://t.co/i6NMRzBG
2012-06-01 00:08:17@takkanm @kdmsnr 実際にデータにロール(Traits)組み込んでしまうと、あとで抜くのが結構難しい気がする。Scalaの場合Traitsを組み込んだ(継承した)クラスを内部で静的に生成するだけなので。SmalltalkやRubyのTraitsだと出来るのかな。。。
2012-06-01 00:12:52やっぱり動的言語のTraitsは動的にメソッド群を抜き差しできるのが基本っぽい。静的言語の場合は継承パスに無理やり追加するイメージ。http://t.co/crgf1IGH
2012-06-01 00:16:55@yojik_ @takkanm えーだってドメインオブジェクトに命令したくないですか?(そういう話じゃなく?)
2012-06-01 00:28:59@yojik_ @takkanm 明示的に抜くんじゃなくてコンテキストが終了したらおしまいって感じだと思う。
2012-06-01 00:31:10Rubyのオブジェクトってクソの塊みたいなもんなので、あるコンテキストに向けていい顔するみたいなことできないとおもってたんだけど
2012-06-01 00:36:25DCIは設計レベル・分析レベルの概念をプログラミングレベルで担保しましょうみたいな話だとおもっていて、そういうのは曲芸だとおもっている
2012-06-01 00:41:29