始めに
オブジェクト指向はクリーンアーキテクチャするうえでは持っておきたい知識だと思ってる。
今まで以下のような書籍を読んだが、これから会社都合でガッツリlaravel書くことになりそうなのでphpならどんなふうに考えるのかの整理のために書いていく
今まで読んだオブ脳関係
(多分絶版だけど。アフィリンクじゃないよ!)
メルカリにも中古は有るよ。
オブジェクト指向設計実践ガイド(Ruby)
Ruby触るならイメージ湧きやすと思う。
オブジェクト脳の作り方
最初に読むべきだと思ってる。内容はJavaだが概念がマジでわかりやすい
内容
そもそもオブジェクト指向とは・・・
ー>平たく言うと役割分担
- カプセル化(役割分担)
- 継承(引き継ぎ)
- ポリモーフィズム(多様化)
phpに関するデザインパターンは以下のページがめちゃくちゃ勉強になる。感謝。。。
メモ
クラスのアクセス修飾子
private・・・外からアクセスできない
protected・・・自分と継承先のみ
public・・・誰でもウェルカム
継承
書き方
//親クラス
class BaseProduct {
//変数・関数
public function echoHoge(){
echo 'ほげほげ';
}
}
//子クラス
class Product extends BaseProduct {
$instance->echoHoge();
}
親クラスの内容を継承。子クラスに同じ関数がある場合。子クラス優先。オーバーライドは使う場面が思いつかん。
おまけでfinal pubilic~~とするとそれ以上継承できない
補足(抽象クラス:abstract, interface)
abstract class HogeAbstract{
abstract public function getHoge(){
echo '抽象クラス';
}
}
抽象クラスをつを使うとそのメソッドを必ず使わなきゃいけなくなる
ー>書いてるけど忘れてるメソッドの無駄防止
interfaceは複数継承できる。
class Product implements ProductInterface, NewInterface{
public function getHoge();
}
但しinterfaceは中身書かないよ!