こんばんわ。
今回のポイント
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
・javaの4つの原則は「カプセル化」「データ隠蔽」「抽象化」「情報隠蔽」
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
今回は少しテキパキとやって行きましょう。
前回最後に触れたjavaをコーディングしていく際の考え方「オブジェクト指向」での目的・・「変更に強い設計」を目指す為に必要な要件は下記の2つでした。
・コードの変更の際に変更範囲が分かり易いこと。
・変更作業の際に工程を出来るだけかけないこと。
この2つが満たされる変更に強い設計を作るためにjavaには4つの基本原則があります。それが今回紹介する
「カプセル化」「データ隠蔽」「抽象化」「情報隠蔽」
の4つです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
カプセル化
カプセル化は、関係するデータと、そのデータを使う処理を一緒のくくりでひとまとめする事です。
このひとまとめにした部品の事を「オブジェクト」といい、プログラムの基本の単位になります。データの変更の際に、「そのデータを使う処理は同じくくりにしか無い」という状況を作る事が出来る為、変更に対する影響の範囲がすぐに特定する事ができます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
データ隠蔽
データ隠蔽はカプセル化とセットで行うべき設計とされています。
あるオブジェクトのデータに対し、他のオブジェクトから直接アクセスされてしまう事があったら、データの変更などの影響がオブジェクト内だけでは止まらなくなります。
そのような事を防ぐために他のオブジェクトの処理からオブジェクト内のデータにアクセス出来ないようにアクセス制限をする事を「データ隠蔽」といいます。
アクセス制限には「アクセス修飾子」を使うことで実現が出来ます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
抽象化
javaを実用化する時には、沢山のオブジェクトを扱います。多分。実用した事ないけど。1つ1つオブジェクトの中身を分かりやすく纏めることに成功しても、オブジェクト同士が連携し合って複雑になってしまっては本末転倒です。
そこで、「抽象化」という考え方を使う事で、全体を単純に捉え、理解を簡単にする事が出来ます。抽象化とは共通する部分だけを取り上げ、違う部分を見ないようにする考え方です。
それぞれ共通点だけを見ることで、とてもシンプルな構造となります。オブジェクト指向では「ポリモーフィズム」という技術で実現が出来ます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
情報隠蔽
最後に情報隠蔽です。データ隠蔽とは全くの別物なので注意が必要です。
オブジェクト指向は長い間の保守に長けています。
長い間、開発を続けていると、抽象化にて一度「見ないもの」として扱ったデータを変更しなければならない場合もあります。何度も手をつけてしまえば、構造がより複雑になる事が予想されます。
そういう可能性を考え、1度「見ないもの」にしたものに、アクセス出来ないように制限します。何を公開させるか、非公開にしてアクセス制限をかけるか。このアクセス制限が「情報隠蔽」と呼ばれるものです。
また、設計意図に反した利用や変更を防ぐ為に、アクセス制限をすることも重要な役割です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
上記の4つを満たすことで、変更に強いプログラムを作る事が出来ます。
これから触れていくプログラミングのコードを作成する際には、基本原則を意識していきながら作っていくことにしましょう。しかし、そもそもどんなものを使ったら基本原則に沿っていく事が出来るのが分からなければ、身も蓋もないので学習を深めて行きましょう。
次回はjavaのデータ型や文字列などに触れて行けたらと思います。では、ぴーす。