他の記事を読んだ(勉強の痕跡)なので
下記のリンクから、元記事様へ行ってくださいまし。。
ワタシ的インターフェイスとは、
指すだけで丁度良い電気が流れる「コンセント」(=規格)みたいなもの。
SymfonyはPHPなのに「インターフェイス」の宣言などがあり「Java」みたいで難しい。
そもそもなんでこれインターフェイスの宣言が必要なのかと思ってしまうので、
いろんな記事を読み漁った。
一番良いと思った例文を持ってきた。
インターフェイスの定義
<?php
interface フルーツ {
public function 値下げを適用();
public function 価格の表示();
public function 価格の設定($値段);
}
フルーツのインターフェイスをあらかじめ設定しておく。
クラスの実装
<?php
class りんご implements フルーツ {
private $値段 = 1000;
public function 値下げを適用() {
// 常に2割引
$this->値段 = $this->値段 * 0.8;
}
public function 価格の表示() {
return $this->値段;
}
}
class ぶどう implements フルーツ {
private $値段 = 2000;
public function 値下げを適用() {
if ('30' == date('d')) {
// 30日なら半額
$this->値段 = $this->値段 / 2;
}
}
public function 価格の表示() {
return $this->値段;
}
}
class レモン implements フルーツ {
private $値段 = 500;
public function 値下げを適用() {
// 値引きなし
}
public function 価格の表示j() {
return $this->値段;
}
}
3つのクラスで「値下げを適用()」メソッドの処理内容が異なっているものの、
3つのクラスは必ず「値下げを適用()」メソッドを持ちます。
それぞれの値引き内容は、このメソッド内の実装部分だけを見ればいいので、
ソースの内容を理解しやすいといえるでしょう。
ふむふむなるほど。
インプリメンツには、条例を施行する、規約を実施する、という意味があります。
interface っていうのが条例で、implements がそれを施行する
っていう意味か。フムフム。
インターフェイス最大のメリット
役割ごとにカテゴライズされた各レイヤー間にインターフェース(契約)を設けることによって、
各レイヤー間を疎結合にし(依存度を低くし)、変更に強いアプリケーション作ることができる
あーそうゆーことね、完全に理解した。
嘘です。以上です。