他の記事を読んだ(勉強の痕跡)なので
下記のリンクから、元記事様へ行ってくださいまし。。
(引用元:https://kaitoribob.com/wp/column/amazon-fire-tv-stick%E3%81%8C%E3%83%86%E3%83%AC%E3%83%93%E7%94%BB%E9%9D%A2%E3%81%AB%E6%98%A0%E3%82%89%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE5%E3%81%A4%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/)
ワタシ的インターフェイスとは、
指すだけで丁度良い電気が流れる「コンセント」(=規格)みたいなもの。
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 がそれを施行する
っていう意味か。フムフム。
インターフェイス最大のメリット
役割ごとにカテゴライズされた各レイヤー間にインターフェース(契約)を設けることによって、
各レイヤー間を疎結合にし(依存度を低くし)、変更に強いアプリケーション作ることができる
あーそうゆーことね、完全に理解した。
嘘です。以上です。