woshidan's loose leaf

ぼんやり勉強しています。

Decoratorパターン

実害のあるドジなので、昼寝してたらベッドの底が抜けて泣いてた。 (ねじが2,3本足りてなくて、底の板がスライドして斜めになって間から落ちたらしい)

さて、Decoratorパターンで思い浮かべたのはcssで装飾用や動作の仕組まれたdivにどんどん包んでいく感じでした。

<div class="popup"><!-- 何かの条件で、この中の要素をポップアップして表示 -->
  <div class="image_box"><!-- ボーダーで額縁みたいな表示をする -->
    <div class="countupLike"><!-- この中の要素をクリックしたらいいね!カウントが増える -->
      <img src="<%= @img_src %>" />
    </div>
  </div>
  <div class="caption">
    <%= @caption %>
  </div>
</div>

だから、どう、ということではないのですが、出てくるものの性質自体は、Decoratorで包んでも変わらない、みたいなところを意識してコードを書く、 それぞれの機能追加は少しでも、それらの機能を組み合わせて使う事ができるので、少し幸せになれそうな気がしました。

複雑な画面やクラスを作りたいときは、複雑さを分解して、1つ1つの機能を追加して、それまでの条件の部分もそのまま使えるようなインスタンスを返す、みたいなことを意識すると良いかもしれない、みたいなパターンでした。