タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

traitに関するcignoirのブックマーク (3)

  • PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ

    PHP5.4 alpha1がリリースされた。このリリースでは、PHPのオブジェクト指向言語の新たな機能としてtraitと呼ばれる機能が追加された。PHP5.4におけるtraitとは、型に影響を与えずにクラスに適用できるメソッドとプロパティの集合である。 早速PHP5.4 alpha1をインストールし、traitを使ってシングルトンパターンを実装した。このコードでは、クラスの継承関係に影響を与えずにシングルトンパターンをモジュール化している。 <?php trait Singleton { protected function __construct() { } static function getInstance() { static $obj = null; return $obj ?: $obj = new static; } function __clone() { throw n

    PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ
  • PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ

    PHP5.4にはトレイトという文法が導入されて、多重継承の便利さが享受できるようになるそうです。 いろいろ試してみることにしました。 トレイトといえば代表選手はScalaですね。Scalaでいうトレイトは、インターフェースの定義とメソッドの実装を同時にやってくれる便利な概念でした。単一継承のOOP言語では「〜は〜の一種」という制約が強すぎて、「ペンギンは鳥の飛行メソッドによって飛行できてしまう」という問題があります。でもちゃんと「ペンギンは飛べないが泳げる鳥」を綺麗に解決する必要はあって、その解答として、トレイトのあるScalaではこんな解が導けます。 abstract class Animal abstract class Bird extends Animal { def hasBeak = true // 鳥にはかならずクチバシがある def hasWings = true // 翼

    PHP5.4とScalaのトレイト比較 - なんたらノート第三期ベータ
  • ハタさんのブログ(復刻版) : Scala の trait って便利だよね。って話

    Scala Advent Calendar jp 2010の 12/20 を担当しました。Day 14です。 よろしくお願いします。 色々何か書こうか迷ったけど、traitについて書こうと思います。 scalaのtraitって、インタフェースのようでありながら実装を持てるので、色々便利ですよね。 javaからscalaと移行してきた人にとってtraitとはなんぞや?と思ってしまうので、そのあたりを書いてみようかと思います。 Slateによるtrait まず、traitだけを見ると、scalaのtraitは他の言語のソレと違っています。 例えが悪い(?)ですが、traitを持つSlateという言語(SELF系の言語で、small talkによく似ている言語です) の場合、traitはどちらかというと、メソッドの集合であって、そのtraitを使うことで多重継承等を行うようにできるヤツです

  • 1