ごきげんよう。
オブジェクト指向、初心者です。
いろいろと素人ながら分かっているつもりなのですが、継承の利用法がピンと来ません。
なにかいいサンプルはないでしょうか?
カウンタとする機能を継承させて、画像カウンターにするのは、便利と思ったのですが、PHPならではの書き込み処理や他の処理を継承させるコツがわかりません。
私の中で、継承はお客様の無理な仕様の変更や、最初のアイディアの甘さを埋めるためと認識しているので、一つの関数でできるだけ不備のないものを作ろうと考えるので、あまり継承がピンとこないのかもしれません。
わたくしは、あくまで自分のHP内で、一人でスクリプトを作っているもので。
例えば、掲示板を作るに当たって、継承を使うサンプルがあったら、おねがいいたします。
No.1
- 回答日時:
ありきたりなたとえですが、
トラックは車です。
ごみ収集車は車です。
レーシングカーは車です。
同じ車なので、タイヤがついていたり、
エンジンがついていたり、エンジンを掛けることができたり、
走ることができたり、燃料があったり、補充したり、などなど
多くの部分で、共通項があります。
ただし、レーシングカーに荷台は必要ありませんし、
トラックにゴミを潰す機能は必要ありません。
掲示板のプログラムでも、同じようなことが言えないでしょうか。
題名と本文はだいたい、どんな掲示板にもあります。
共通項です。(タイヤ、燃料にあたる)
画像掲示板には画像を表示する機能が必要です。
音を再生する機能は必要ありません。
ファイルアップができる掲示板には、
画像を表示する機能は必要ありませんが、
ダウンロード用にファイルへのリンクを表示する機能が必要です。
ここで、複数の機能を作るために共通項である部分を複数の機能の数だけ作るのは大変手間のかかることです。
コードをコピーしてしまえばいいように思えますが、
共通項の部分に、変更を加えた場合どうなるでしょうか。
すべてのコードを修正しなければなりません。
その点で継承は便利です。
ミスも少なくなります。
この回答への補足
はい、それはわかります。
ただ、この例えだと、タイヤとエンジンの構造で基礎を作り、関数で重ねる処理ですむような気がします。
荷台関数、ゴミをつぶす関数で。
関数自体を別のファイルで作れば、さほど、デバッグの処理も難しくはありません。
画像掲示板も、画像を表示する関数を作り、関数で処理できると思います
継承は、レーシングカーなら、通常のタイヤをレーシングカー用のタイヤに継承するイメージなのですが。
これを関数で作ると、レーシングカー用のタイヤと、普通のタイヤを作らないといけません。
しかも、現実の世界として、レーシングカーと、ゴミ集積車と普通の車の設計図は本当に同じでしょうか?
わたくしは、素人ゆえにオブジェクト指向=現実的な表現をしてしまいますが、詳しい方は、あくまで”掲示板を作るに当たってのサンプル”をお願い致します。
オブジェクト指向は、現実を模したものとするのは、誤解を生じさせる可能性がある表現だと思います。
No.2ベストアンサー
- 回答日時:
掲示板プログラムの規模であれば、継承を利用した方が劇的に良くなる場面というのが思いつきません。
もう少し規模が大きいアプリケーション、もしくは汎用性が高いライブラリを題材にすると良い例が示せるかもしれません。
継承は無理に使う必要はありませんよ。
ごきげんよう。
やはり、掲示板程度では・・・というか、素人が作るPHPでオブジェクト指向が必要か?というのに、疑問を持っていたので、そう言って頂けると助かります。
とりあえず、オブジェクト指向は少しずつと思っています。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- 賃貸マンション・賃貸アパート 賃貸人の地位承継について 引っ越したばかりのマンション(去年の12月に建ったばかり)ですが、本日賃貸 4 2022/09/12 15:14
- 弁護士・行政書士・司法書士・社会保険労務士 管理費滞納債務の特定承継人への承継 6 2022/04/02 16:59
- その他(悩み相談・人生相談) 回答者さんだったらどっちを選びますか?理由も教えてください! 貴方の身内の中で長年にわたり会社経営を 3 2022/09/23 20:11
- 世界情勢 ヘンリー王子に新たに子供が生まれたら、王位継承権はありますか? イギリス王家離脱 1 2023/02/02 17:28
- 倫理・人権 なぜ「女系」ではだめなのでしょうか?本質的には「男系」と同じことではないでしょうか? 20 2023/05/15 21:28
- 医療・安全 塩野義製薬の新型コロナ治療薬「ゾコーバ」の緊急承認見送り 7 2022/07/22 00:45
- 歴史学 日本では先祖の名前(姓でない方)の一字を継承し、中国・朝鮮では継承しない、という違いはどこから生まれ 6 2022/10/12 16:29
- 高校 こちらの問題がわからなくて、教えて欲しいです、、、、 ナポレオン 1 世の死により,皇位継承権は〔 2 2023/07/28 18:48
- 相続・遺言 元配偶者の子の相続権について 3 2022/07/27 20:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらはただの直列処理ですか?
-
phpでcookieがうまく保存されない
-
PHPで画像の渡しが上手く行きま...
-
PHPでこのコード自体に意味は無...
-
Q&Aサイトを作成していてURLの...
-
クエリObjectをforeachで回す時...
-
phpでPEAR::DBを使っているので...
-
reuterの記事をbeautiful.soup....
-
phpでクラスのメソッドで同名の...
-
PHP8を使うと、大量のWarningが...
-
SFTPなどは使わないホームペー...
-
awsにApacheとPHPを入れて、何...
-
phpのクラスメソッドの定義が長...
-
PHPで訪問回数を表示するカウン...
-
PHPを使って、別サイトの一部を...
-
jpgraphで表示されない
-
PHP MySQLに画像を直接保存
-
PHPとHTML+Xamppの掲示板で画像...
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
重複を防ぐ記述について教えて...
-
index.phpって何ですか? 具体...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
-
PHPでユーザー情報を入力して簡...
-
ワードプレスサイト PHP8.0.25...
-
php 完了画面の送信メールのコ...
-
SFTPなどは使わないホームペー...
-
PHPのセッション有効期限について
-
csvファイルについて教えて下さ...
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで訪問回数を表示するカウン...
-
ファイルアップロードに関して...
-
掲示板を作成しておりアップロ...
-
Q&Aサイトを作成していてURLの...
おすすめ情報