Scala 型クラスへのリファクタリング

二週間ほど前に Scala の暗黙の(implicit)パラメータを用いた型クラスの実装について書いた.型クラスはある抽象体(abstraction)についての直交した関心事を,抽象体そのものに直接組み込むことなくモデル化することができる.これでコアな抽象体から余計なものを取り去って,別々の独立したクラス構造に変えていくことができる.最近 Akka actor のシリアライゼーションをリファクタリングして型クラスの恩恵に関する実地的な知見を得ることができたので,ここに報告したい.

Scala Implicits: 型クラス、襲来

型クラスに基づいた思考はあなたの設計の幅に価値を与えることができると思う.まずは GoF の Adapter パターンから始めよう.委譲型の Adapter はよく勧められる合成(composition)というテクニック用いて抽象体(abstraction)どうしをバインドする.

設計の直交性のときと同じ例を使うと,

case class Address(no: Int, street: String, city: String, 
  state: String, zip: String)

scalaxb

更新: scalaxb に関しては scalaxb.org から.

Syndicate content