なんじゃくにっき

プログラミングの話題中心。

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

Scala de Design Pattern: Factory Method / Abstract Factory

Factory Methodパターン & Abstract Factoryパターン。abstract class 親 { def の子: 子 } abstract class 子 class カエル extends 親 { def の子 = new オタマジャクシ } class オタマジャクシ extends 子 { println("カエルの子はカエル") } class トン…

Scala de Design Pattern: Template Method

Template Methodパターン。 おおまかな処理を先に決めておいて細かい処理は最終的な実装に任せる。 traitの関数が実装を持てることを利用して実装してみた。trait Hoge { def execute = { methodA methodB methodC } def methodA: Unit def methodB: Unit de…

Scala de Design Pattern: Composite

Compositeパターン。 割と普通。abstract class Node(name: String) { override def toString = name def addChild(node: Node): Unit def callRecursively = println(toString) }class InnerNode(name: String) extends Node(name: String) { var children …

Scala de Design Pattern: Flyweight

Flyweightパターン。 小さいオブジェクトを使い回す。 あまりScalaっぽい書き方はできなかった・・ 強いて言うならばpoolにインスタンスか存在するか調べるときにSomeとNoneを使うところか。class Piyo(name: String) { println(name) }object PiyoFactory {…

Scala de Design Pattern: Adapter

Adapterパターン。 既存のクラスを変更せずに振る舞いを追加したい場合に使用する。 Scalaではnewするときにtraitを付与できるがその際に実装のない関数の中身も実装できる。class Item(cost: Int) { def getCost = cost }trait Price { def getPrice: Int }…

Scala de Design Pattern: Decorator

Decoratorパターンを実装する。 既存のクラスのインターフェイスを保ったまま振る舞いを変えるのがDecorator。 Scalaではnewするときにもtraitを付与できるのを利用する。trait Animal { def roar: Unit }class AnimalImpl extends Animal{ def roar = print…

Scala de Design Pattern: Strategy

Strategyパターンを実装してみる。 Strategyパターンはオブジェクトの振る舞いを実行時に変更するパターン。 Javaの場合は、実際のアルゴリズムを記述した別クラスに委譲することで達成する。 Scalaでは関数は第一級オブジェクトなので関数をそのままインス…

Scala de Design Pattern: Iterator

今回はIteratorパターン。 hasNextとnextを持つアレっすな。アレ、アレ! コレクションフレームワークに隠蔽されて直に使われることの余りないアレっす! scala.collectionパッケージにはIterator traitだけでなくIterator Objectもある。 これを使うと簡単…

Scala de Design Pattern: Singleton

Scalaでデザインパターンを実装してみようと思う。 ・GoF本(オブジェクト指向における再利用のためのデザインパターン ソフトバンククリエイティブ刊) ・Wikipedia ・Scala Wiki 辺りを参考に。 できるだけC++, Javaと比べてScalaっぽいことができるといい…

【読書】超・格差社会 アメリカの真実(小林由美 著 文春文庫)

超・格差社会 アメリカの真実(小林由美 著 文春文庫)を読んだ。 2006年に刊行された単行本の内容に、リーマンショックについての章を追加しての文庫版となる。中身を読む前は、格差社会の負の側面、アメリカ化する日本を批判する内容かと思ったが、読んで…

心無いEclipse 3.6 Helios

Scala IDE for Eclipse Heliosがリリースされたので、 Eclipse 3.5 GalileoからEclipse 3.6 Heliosに乗り換えた。 デザインがこれまでの地味なのとは正反対。なんていうかもうソレスタル。 流石Helios。太陽神なだけはある。 公式サイトは派手なのに起動画面…