まぁ、でも多分こんな目的では?という予想はあるよ。
・Java が単一継承となり、振る舞いの規約として Interface が生まれ、具象化が不要な始祖クラスとして抽象クラスが発明された。おかげで、言語が官僚化した。
・Ruby と Scala では、Interface に振る舞いが記載できるようになって、Mix-In という方法で振る舞いを継承できるようにした。その継承に優劣をつけれるようにすることで、C++ と Java の出来なかったことを解消しようとした。
・今のところ、単一継承を行うクラスベースの継承を行う言語でこれ以上の解答を用意できた言語はない。今のはやりは Rust のような後付の継承を良しとするプロトタイプベースの継承が時代のはやりである。
こんな感じなんじゃねーの?Ruby が好きだから、Ruby 史観で書いたけど。つまり、トレイトって「振る舞い」が記載できる Interface のことだと思うよ。
完全に正しい多段継承でテンプレートパターン使いすぎて使い勝手最悪のライブラリを見たことがあるのでリスコフが全てだとは思わないかな。 継承より委譲には賛成。 > Aをラップし...
なんかわかっている人がきた感じ。 イテレータパターンとオブサーバーパターンは言語に組み込まれた感じがする。Ruby とか見てると。
いつの話ししてるんだよお前
うーん、2005年ぐらいか? Scala とか出てきたけど、デザインパターンが言語レベルで組み込まれたのは、これぐらいじゃない?Java や Javascript も機能に組み込んだけど。
ScalaのTraitは何のためにあるのか教えてくれ
さぁ?オレはScala嫌いだから知らんよ。 まぁ、でも多分こんな目的では?という予想はあるよ。 ・もともとは C++ は多重継承ができて、カオスになった。 ・Java が単一継承となり、振...
scalaなら関数型ライブラリのcatsにおける型クラス定義がtraitとその多重継承の利用例として良いと思う