2010-01-01から1ヶ月間の記事一覧

Chain of Responsibility っぽいことを trait を利用して実装してみる

Chain of Responsibility というよりも、http://itpro.nikkeibp.co.jp/article/COLUMN/20081009/316549/?P=2 の方法を変形しただけなんですけどね。まず、リクエストを処理するメソッドを持つ、ハンドラの trait をつくります。 trait Handler { def handleR…

Cake Pattern の簡単な例を書いておく

Cake Pattern の説明は Programming Scala よりも、http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/ の方が分かりやすかったです。一応、自分なりに理解できたつもりでいるので、とりあえず簡単な例を書いておきます。 出現す…

親トレイトで定義されている val を、子トレイトで override するとインスタンス化に失敗する

子側のトレイトで親の val を override すると、コンパイルは成功するにも関わらず、実行時に ClassFormatError が出ます。 以下は現象を再現させるコード。 trait Base { val value: String = "base" } trait Child extends Base { override val value: Str…

SiteMap も JRebel(JavaRebel) で HotDeploy されるようにする

Liftを使用しての開発では mvn scala:cc と mvn:jetty:run をしてファイル保存のタイミングで変更が反映されるようにしていました。 scala ファイルを変更すると scala:cc により自動でコンパイルが実行され、class ファイルが変更されたことにより Jetty が…

main メソッドが見つからないといわれたら・・・

先日、Scala プログラムを書いていたときのことです。object に main メソッドを定義しているにもかかわらず、main メソッドが見つからないといわれました。 以下のようなプログラムです。 import java.awt.Dimension import javax.swing.JFrame object Samp…