今日は、Java読書会の日でした。
も終盤に近づき、次回で最後となりそうです。
本日は、翻訳者の瀬谷さんが参加され、とても有意義な会となりました。
今日の内容
既存のクラス構造に手を加えずに機能を新たに追加するという課題を達成するために有用な3つのパターンとして、
- Visitorパターン
- Decoratorパターン
- Extension Objectパターン
があり、Visitorパターンは循環が発生するのでそれを断ち切るAcyclic Visitorパターンの導入もありました。
続いて状態遷移を扱う方法として
- 入れ子のswitch/case文(よくない例として)
- 状態遷移テーブル
- Stateパターン
- 状態マシンコンパイラ(Stateパターンの実装を楽にする手段として)
があります。
ETSの北米建築士試験アプリケーションのフレームワーク開発
Java SE 7での言語仕様追加検討項目
- friends
- メソッドリファレンス
が検討されているそうです。読書会の書籍中においても、C++ならfriedsがあるのだがJavaではないため、テストのためにフィールドのアクセス制御をパッケージスコープに緩めるという記述がありました。
また、状態遷移テーブルの実装において、遷移時のイベントとなるメソッドを実行するためにJavaではわざわざオブジェクトを一つ作るという手間が発生します。これもメソッドリファレンスがあると解消されます。
最初は追加検討項目を見て「いらないんじゃないの?」なんて思ったものですが、今日の読書会を経験して、見方が変わりました。