Mixin名前かっこいい!

多重継承の使いどころ全然思いつかない(ニューハーフとか?)
けど、コード書いてみよう。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.e2info.groovy | |
class Hello { | |
static hello(String arg) { | |
println "hello $arg." | |
} | |
} | |
class Bye { | |
static bye(String arg){ | |
println "bye $arg." | |
} | |
} | |
String.mixin(Hello) | |
String.mixin(Bye) | |
"world".hello() | |
"world".bye(); | |
/* | |
hello world. | |
bye world. | |
*/ | |
String.mixin(String) // これも大丈夫(意味ないけど) |
言語仕様は使いやすくて読みやすい。
ただし、読みやすさは同一スコープでクラス初期化してる場合だけで、DIとかの場合は定義だけ見ても継承関係わかんなくなっちゃうからダメかも。でもGroovyでDIなんか書かないからいいか。
要は適材適所?でも適所がわからん(><)
ついでに参考
Mixin は Symbolics 社のオブジェクト指向システム Flavors で初めて登場し、LISPマシン で用いられたオブジェクト指向への試みであった。この名称は、マサチューセッツ州 Somerville にあった Steve's Ice Cream Parlor からヒントを得て考え出されたものであった[1]。このアイスクリーム店の店長は(バニラやチョコレートなどの)基本となる味を混ぜ、追加の具材(ナッツ、クッキー、キャンディなど)と組み合わせたものを提供し、それを"Mix-in"と呼んで店の登録商標としていた[2]。
Mixin - Wikipedia
けつろん
名前かっこいい!
かねこ((´∀`))