基本的に怠Diary(跡地)

移転しました->https://diyopt.net

やっていき[一日目] オブジェクト指向のこころ

やっていき[一日目] オブジェクト指向のこころ

ルールとか

はいそれでは第一回目

結果

かなり興味がない分野で固まってしまった(´・ω・`)

そういえば僕はオブジェクト指向について触り程度を学んだことは遭ったが

デザインパターンについてまともに触れたことは一度もなかったことを思い出した(こいつマジ?)

ならば今やる。「オブジェクト指向のこころ」をやっていきです。

モチベはそんなにないのでいきなり6章のFacadeパターンから進めていきます。

Facadeパターンとは

複雑なシステムの内部と外部の仲介役のような役割を担うインターフェース的な場所のことを指しているようでした。

複雑なシステムを何も知らなくてもやりたいことをやらせてくれるかのような感じでした。

外部の参考資料等でフォロー

(wikipedia Facade パターン)https://ja.wikipedia.org/wiki/Facade_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

Facade(ファサード)とは「建物の正面」を意味する。 異なるサブシステムを単純な操作だけを持ったFacadeクラスで結び、サブシステム間の独立性を高める事を目的とする。

ここの部分がわかりやすかった。

Facadeパターンの例として、サブシステムとしてのコンパイラーを考える。 システムとしてのコンパイラーは字句解析器や構文解析器などから構成されている。 これらの構成要素は、新たなコンパイラーやその他ソフトウェアを作成する上でサブシステムとして利用することが出来る。 しかし、一般ユーザーにとってコンパイラーはソースコードからプログラムを生成するためのものであり、 ソースコードコンパイルできる機能があれば十分である。 そこでサブシステムから一般ユーザーのために一般ユーザーが必要としているコンパイル機能だけを呼び出すクラスを提供する。 ここで提供されたコンパイル機能を持つクラスがFacadeクラスである。 Facadeクラスが提供された事により一般ユーザーはサブシステムの詳細を知る必要がなくなり、サブシステムの実装から解放されるのである。

理屈はわかったが実装はどうすればよいのでしょうか。

これいうならカプセル化とかだけでもFacadeパターンではないのだろうかと思いました。

まとめ

Facadeは機能の塊であるサブシステムの窓口を担います。

理解していない用語一覧

  • Double-Checked Lockingパターン

  • Singletonパターン


僕の力では一日じゃなにもできなかった。

何日ごと、もしくは進行量の目安等を作成する必要があるため

しばらくは同じ本で学習を継続します。