トップページ > プログラム > 2015年12月15日 > rnQ5rq5D

書き込み順位&時間帯一覧

62 位/197 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000010000000000001



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net

書き込みレス一覧

オブジェクト指向は愚かな考え。この世は計算式 [転載禁止]©2ch.net
988 :デフォルトの名無しさん[sage]:2015/12/15(火) 11:47:16.73 ID:rnQ5rq5D
ミックスインの実例をRubyのモジュールしか知らないというのがちょっと狭すぎるのでは?

ミックスインというのはクラスやそれに準ずるエンティティ(抽象クラスやRubyならモジュール)を
継承パスに挿入することで実現する多重継承のひとつの手法で、Scalaのトレイトもその範疇。

対して、本来のトレイトというのは端的には、通常はクラスの一部であるメソッド辞書(メソッドの集合)を取り出して
エンティティにしたようなもので、継承パスとは無関係。クラスに組み込む(useする)ことで使用し、
複数useされた場合は合成無名トレイトが作られ(フラット化)、あらためてそれがuseされる。
この無名トレイトが合成されるときにトレイト間にコンフリクトがあれば検知されるから、
それを明示的に解消しないとコンパイルが通らない、というところがポイント。

参考まで、Scalaのトレイトと元ネタのシェルリらのトレイトとの関係についてScala設計者の見解は次のような感じ。

Unlike the original trait proposal [29], traits in
Scala are not different from classes.

[29] N. Sch?rli, S. Ducasse, O. Nierstrasz, and A. Black. Traits:
Composable units of behavior. In Proceedings of the 17th
European Conference on Object-Oriented Programming,
Darmstadt, Germany, June 2003.

http://www.bytelabs.org/pub/tpl/slides/sm@lausanne/expressionProblem.pdf


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。