Closed32
デザインパターンを知る
開発部で週1で新しいことをやってみる『Dev実験室』の取り組み
今回は『デザインパターンと仲良くなろうの会』
参考
変わるものを変わらないものから分離する
可能な限り一般的な型に対してプログラミングせよ
集約
concern??
class Engine
# エンジンに関するたくさんのコード...
def start
# エンジンをスタート
end
def stop
# エンジンをストップ
end
end
class Car
def initialize
@engine = Engine.new # 集約
end
def sunday_drive
@engine.start
# 地方に出かけて、戻ってくる
@engine.stop
end
end
委譲,委譲,委譲
- method_missingをオーバーライドするやり方
- forwardableモジュールを使うやり方
extend Forwardable
# 他のハッシュのメソッドが使いたくなったらここに追記する
def_delegators :@conditions, :keys, :[], :[]=, :each, :include?, :slice, :except, :merge, :dup, :to_hash, :delete, :reject!
ここらへんはピンとこない。
デザインパターンを学習するとオーバーエンジニアリングをしがち。
YAGNI
うーん。となってきたらデザインパターンでリファクタリングする?
3章 アルゴリズムを変更する : Template Method
TSUでいうCondition系
デザインパターンって何?
オブジェクト指向で再利用性の高い設計とするためのパターン
メリット
- 再利用性の高い柔軟な設計ができる
- 技術者どうしの意思疎通が容易になる
https://www.techscore.com/tech/DesignPattern/foundation/foundation1.html/
include extend の違いについて分かりやすい
感想
このスクラップは2021/07/01にクローズされました