オブジェクト指向のこころ・9章・練習問題
Strategyパターンについて書かれた章です。
基礎
- 新たな要求を取り扱う方法として、どのような方法があるでしょうか?
- 変更のことを考慮して設計するアプローチを行う。
- 時とともにシステムがどのように変化していくのかを考える。
- 変更は将来必ず起こるものであるという前提に立ち、どこに変更が発生するのかを予測する。
- GoFが提案した、変更に取り組む際の基本原則を3つ挙げてください。
- 1.実装を用いてプログラミングするのではなく、インタフェースを用いてプログラミングしてください
- 2.クラス継承よりもオブジェクトの「集約」を多用してください
- 3.あなたの設計において、何を流動的要素とするべきかを考察してください。設計変更を強いる可能性のあるものが何かを考えるのではなく、再設計せず何を変更可能とするのかを考えるのです。着目すべきは、流動的概念のカプセル化です。
- Strategyパターンの目的とは何でしょうか?
- さまざまな業務上の規則(ビジネスルール)やアルゴリズムを、それが発生するコンテキストに応じて使い分けられるようにする。
応用
- GoFは「設計において、何を流動的要素とするべきかを考察する」ことを示唆しています。このことと再設計の原因に着目することとは、どのように違っているのでしょうか?
- コピー&ペーストにおける問題とは何でしょうか?
- オブジェクトの再利用を全く考えていない方法である。Strategyパターンはコンテキストに応じて使い分けられるようにする因果関係をもつが、コピー&ペーストによる方法はすでに動作するコードをコンテキストに応じて書き直しているだけである。(と私は思う;前者の方が視点のレベルが高い)
- 「switchの泥沼」とは何でしょうか?
- 既存のコードがswitch(もしくはif)によって書かれている場合、新たな条件の発生によって、その条件に関係しそうな部分を探しまわることになる。(たった1箇所の修正であっても、しばしばコード全体を読む羽目になる);条件によって、処理(機能)を分割したはずなのに、これでは本末転倒だ!
Consoleは幅のリサイズが可能
昨日のConsoleの件、追記。
http://d.hatena.ne.jp/pneumaster/20101214/1292334215
# cmdと違って、ウィンドウの幅を自由にリサイズできる!
# しかもConsoleは途中でリサイズしても、新たなウィンドウサイズを使用して全体を再描画する。嬉しい。
今まで、msysgitをVisual Studioから外部ツールとして呼んでいたけれど、
Consoleを使って同じことをする方法
google:console2 startup git
http://www.mohundro.com/blog/2010/02/04/SomeTipsOnUsingGitWithWindows.aspx
http://www.lostechies.com/blogs/jimmy_bogard/archive/2010/04/05/integrating-the-git-bash-into-console.aspx
しかし、何故こんなに日本語の記事が少ないの。
参考
- http://tiredblogger.wordpress.com/2009/08/21/using-git-and-everything-else-through-powershell/
- 最初はPowershellを使用して、gitを使う方法を探していました。だけど、使い方を覚えるのに大変そうなので回避しようと思っていたところに、このConsole。
Console - コマンドプロンプトに代わるソフトウェア
Console
http://sourceforge.net/projects/console/
cmd.exeでgitを使う苦行から逃れられるでしょうか。
明日試してみよう。
# ソースを見た感じ、WTLで作られているみたいです。
mozc - Google IMEインストール
obsからインストールしたらlibprotobuf6というパッケージが依存関係でインストールされた.
$ zypper info libprotobuf6 Loading repository data... Reading installed packages... Information for package libprotobuf6: Repository: @System Name: libprotobuf6 Version: 2.3.0-1.8 Arch: i586 Vendor: openSUSE Installed: Yes Status: up-to-date Installed Size: 1.0 MiB Summary: Protocol Buffers - Google's data interchange format Description: Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.