![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
マイクロソフトがvbを捨てたのは何故ですか C#は変数の型指定ひとつとっても最近の主流とはかけ離れて
その他(プログラミング・Web制作)
-
IF文、条件分岐の整理方法
Visual Basic(VBA)
-
これて逆じゃないですか?
C言語・C++・C#
-
-
4
プログラムの実行時に'<'でリダイレクトする場合でも、キーボードからの入力を受け取られる件について
C言語・C++・C#
-
5
コンソールアプリを作成するのにおすすめのプログラミング言語はやはりC++ですか? 競技プログラミング
C言語・C++・C#
-
6
C言語について。
C言語・C++・C#
-
7
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
-
8
プログラミング 学習
JavaScript
-
9
プログラマーは誘惑にさらされる人生?
その他(プログラミング・Web制作)
-
10
Python言語のAnacondaの話です Windows 10 でアナコンダを入れました エディタ
その他(プログラミング・Web制作)
-
11
C言語って古いですか?
C言語・C++・C#
-
12
こんなことてしますか??
C言語・C++・C#
-
13
プログラム言語について c言語もコードによって機械語に通訳されると知りました。直接機械が通訳しなくて
C言語・C++・C#
-
14
10進数からN進数に変換するプログラミング(C言語)
C言語・C++・C#
-
15
逆コンパイルと逆アセンブルの違いはなんですか
C言語・C++・C#
-
16
Pythonのコードエラーについてです。
その他(プログラミング・Web制作)
-
17
プログラミングの雑談がしたいのですがどこで出来ますか?
その他(プログラミング・Web制作)
-
18
プログラムについて。
その他(プログラミング・Web制作)
-
19
サブフォルダに格納されているファイルを、ファイル名ごとに条件分岐させたい
Visual Basic(VBA)
-
20
googleの検索で、自分のブログが表示されるようにしたいです。やり方を教えて下さい。
SEO
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インターフェースとトレイトっ...
-
「ラッパークラス」の存在意義...
-
委譲って何ですか?
-
「IOException は対応する try ...
-
オーバーライドとラッパーの違い
-
【C#】クラスのコンストラクタ...
-
Javaで下線
-
compareToにおける「自然順序付...
-
javaの「型」がよくわかりません。
-
JAVAでCPUなどのシリアル番...
-
Calendar型を使用して日付の差...
-
c++でのヘッダーファイルの循環...
-
オブジェクト指向言語で多態性...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
Java初級 引数に適用できません
-
複数の変数を宣言する時、同時...
-
C#でフォームのオブジェクト名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
C# 「データが失なわれる可能性...
-
「ラッパークラス」の存在意義...
-
c++でのヘッダーファイルの循環...
-
(vba)他のアプリケーションの右...
-
「継承されたメソッドの可視性...
-
「IOException は対応する try ...
-
ゲッターを使わないで変数にア...
-
JavaでのAPIの覚え方ってみさな...
-
VB DLLプロジェクトについて
-
Javaで下線
-
【C#】クラスのコンストラクタ...
-
Javaのインスタンス化の構文の...
-
委譲って何ですか?
-
ASP.NETでの共通コードの書き方...
-
オーバーライドとラッパーの違い
-
抽象クラスをJUNITでテストする...
-
JTextFieldの入力制限
-
Commons-Discovery.jarとは?
-
setTextについて
おすすめ情報
知ったかやめて