概要
主にRuby on Railsを使いながら、モデルやライブラリ等を実装してきた過程で感じた疑問として「Javaにはデザインパターンというのがあるし、PHP界隈でもこれを使いこなせることが、設計者としてのスキルの指標として見られる所があるけどRubyでは、デザインパターンの半分くらいはいらないのではないのかな?」と思ってきました
実際にRubyには、次の様な利点があります
- 他のLLと同じく型の制約が非常に緩い
- HashやArrayがJavaよりも柔軟に記述できる
- lamdaやproc等の、関数型言語に近い振る舞いのオブジェクトがある
- define_methodやmethod_missing等のメタプラグラミングの技法を使える
Ruby周辺でデザインパターンがありがたくないということは、実践Rails等の書籍でも言及されてたりしますが、具体的な形で示された文書というのを(ワタシは)見かけたことがないので、個人研究ということで、書き換えを行ってみました
また、実際にメタプログラミングの技法を使って各種のデザインパターンを書き換えていくと
デザインパターンでしたかったことは、本当は何だったのかをより本質に近い形で記述できるのではないか?と思い出しました
ゆっくりと、追記や変更を加えていくこともあるでしょうが、そこは私の未熟と思って気長に見えていただけると幸いです
デザインパターン一覧
- Abstract Factory パターン
- Builder パターン
- Factory Method パターン
- Prototype パターン
- Singleton パターン
- Adapter パターン
- Bridge パターン
- Composite パターン
- Decorator パターン
- Facade パターン
- Flyweight パターン
- Proxy パターン
- Chain of Responsibility パターン
- Command パターン
- Interpreter パターン
- Iterator パターン
- Mediator パターン
- Memento パターン
- Observer パターン
- State パターン
- Strategy パターン
- Template Method パターン
- Visitor パターン