オブジェクト指向の考え方がいまいちわからないので質問させて頂きます。
あくまで例えばなのですが、犬の行動処理を作る場合この設計は正しくないのでしょうか?
犬が「歩く」→「吠える」→「眠る」という処理を書く場合
DogClass
1class Dog{ 2 public function action(){ 3 walk(); 4 bark(); 5 sleep(); 6 } 7 8 private function walk(){ 9 // 歩く 10 } 11 12 private function bark(){ 13 // 吠える 14 } 15 16 private function sleep(){ 17 // 眠る 18 } 19}
Yobidashi
1$dog = new Dog(); 2$dog->action();
始めはこのように処理を書いていただのですが、次第にこれはおかしいのではないかと思い始め下記の書き方に変更しました。
DogClass
1class Dog{ 2 public function walk(){ 3 // 歩く 4 } 5 6 public function bark(){ 7 // 吠える 8 } 9 10 public function sleep(){ 11 // 眠る 12 } 13}
Yobidashi
1$dog = new Dog(); 2$dog->walk(); 3$dog->bark(); 4$dog->sleep();
この場合どちらの書き方が正しいのでしょうか?
それともどちらも正しくないのでしょうか?
個人的には下記の書き方は呼び出し側で大量の関数呼び出しを行う可能性も発生するので、
そこは書き方としてきれいなのかな?という疑問も感じています。
回答4件
あなたの回答
tips
プレビュー