インターフェースとトレイトってどっちが正義なんですか?
インターフェースを利用するとそのクラスのように使えるので、関数の引数として別のクラスを同じように使うことが出来ます。
トレイトを利用するとそのクラス内で実装されているようにメソッドを利用できるので、カプセル化の観点から言えばこちらが有利ですが、正直コードの可読性を下げると思います
- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
あと4000文字
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
PHPとかのお話でしょうか?
トレイトはクラス間をまたがった共通できるロジックを用意するだけであり、
インターフェースとは全く別物ですよ。
インターフェースはクラスの実態を利用元が意識する必要がなく、インターフェースで定義された状態や操作だけで利用元がコントロールできるものです。
インターフェースを実装した時点で、こちらもカプセル化は行えます。
トレイトはインターフェースや抽象クラスの代わりではなく、クラスを構成するにあたって横断的に必要となるコードを実現するにあたっての補助役という位置づけで考えた方がよいです。
意味もなく乱用すると保守性に問題を引き起こす場合があります。
あまりよくありませんが、なんらかの理由でどうしてもクラスの相関関係を崩せない時とかに利用するとか。
継承関係では解決できない、特定のクラスに依存しないけど、何度も同じことを書く横断的な関心ごととかに利用するとか。
ここが分かりやすいです。
https://www.infiniteloop.co.jp/tech-blog/2014/08 …
まずはクラス設計を適切に行うことが大事で、便利だからといって、いつでも考えなく積極的に利用するものではありませんね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- ネットワーク プロトコルの階層化とインターフェースとの違い 2 2022/07/26 02:38
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(コンピューター・テクノロジー) ChatGPTは井の中の蛙大海を知らずですか。 5 2024/05/25 21:25
- その他(セキュリティ) Yahoo! JAPANのID取得について 1 2022/11/30 23:00
- クレジットカード セゾンクレジットカードの支払い忘れ 6 2023/06/12 06:32
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- その他(セキュリティ) 警視庁が家庭用ルータ不正利用 注意喚起 どこまで設定を変更すれば安全か? 2 2023/03/28 19:22
- クレジットカード クレジットカードの不正利用に気付きました。 久しぶりにクレジットカードの明細をチェックすると、身に覚 4 2024/06/26 15:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムについて。
-
paiza python03 ランクC獲得
-
soucetreeでローカルのクローン...
-
マイクロソフトがvbを捨てたの...
-
python03について。
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
スカラーのベクトル微分
-
batファイル、コマンドプロンプ...
-
Adobe Premiere Proについて質...
-
Adobe Premiere Proです。 シー...
-
python3について。
-
P2P地震速報のEEW APIの仕様書...
-
pythonの画像の貼り付けについて
-
Processingについて
-
python コードについて(初学者...
-
AndroidStudio エラー と イン...
-
そのまま使っただけなのに・・...
-
JRのjsonファイルって使って大...
-
Gitで空白のみの変更を削除した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
テキストファイルの1行目のみを...
-
Google ColaboでGUI作成
-
Python... 環境設定 初心者です...
-
AIの登場でプログラマーたちが...
-
入力された文字列が、LD22000を...
-
ITパスポートの勉強をしていま...
-
プログラミングサイトについて。
-
バッチファイルが保存されてい...
-
VBSでテキストファイルの2行目...
-
40代後半でゼロからのプログラ...
-
{ CONTROL Forms.Label.1}が...
-
Version Control on Unity
-
過剰なオブジェクト指向脳から...
-
VBAでパワーシェルを実行したい...
-
ImageMagickでgif画像の一部が...
-
正規表現 URL抽出「 [\\/\\b]{0...
-
VBA 電話番号の正規表現について
-
そのまま使っただけなのに・・...
-
プログラム言語について。
おすすめ情報