skillup

技術ブログ

アーキテクト設計全般 プログラミング全般

abstract,interface,traitなどについて

投稿日:

昔はようわからなかったabstract(継承全般)、interface、traitの使い分けなどについて。

今の現場でいろいろと考えることがあり、自分なりにいろんな方の知見を共有できたので、メモしておこうと思います。

abstract(継承全般)

いわゆる継承ですね。abstractのこともあれば、単純にextendsの継承を使う場合もあります。

使うケースとしては、以下のようなケースですね。

  • 親と子に関してプログラムの骨組みそのものが近いこと(語彙力なくてなかなか良い言葉が思い浮かばない。。。)
  • abstractを使う場合については子で分岐させるような処理がある場合(ifつかうより、子供で処理を分岐させた方が良い)

interface

abstractとの使い分けが一時不明瞭でした。

自分の中では以下のように考えてます。

  • 親子関係などがあるかどうか(プログラム全体の主従関係)は関係ない
  • あくまでメソッド名と引数と戻り値の型を統一させたい場合に使う

単純なモデルなんかで従属関係はないんだけど、便宜上、メソッドと引数、戻り値を統一させたい場合に使うなんてケースがありました。

trait

直近プロジェクトでちょこちょこ使いました。

  • 継承するほどではないけど、一部汎用的なメソッドを使いたい
  • ワンポイント的な形のメソッドなどで使われることが多い

意外にうまく使えるケースが多く、なかなかつかいどころいかんによっては効果を発揮してくれます。

-アーキテクト設計全般, プログラミング全般

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

例外・エラーに関する考察

えー今現在、設計の仕事をしていますが、今までいい加減だったエラーの処理を見直すいいきっかけになってます。 半年前にも同じような記事書いてますねー。苦手意識は変わらないようです・・(汗) 例外処理に関し …

no image

サロゲートキーと主キーに関して

今までも何度か触れたサロゲートキーと主キーに関して。 今までの参考リンク 論理設計のグレーノウハウ サロゲートキー サロゲートキーに関して 主にシステム設計的な考察が多かったので、今回はユースケースか …

no image

正規表現に関して

SQLネタをいろいろと書いておりますが、ちょっとワンポイント的なネタで正規表現について書きたいと思います。 平均的なものは知っているつもりでしたが、シェルの正規表現について知らなかったのでちょっとメモ …

no image

ここ1年ぐらいで再確認したネタなど

今の現場では比較的、いわゆるモダンな環境で開発をしていることもあり、非常に勉強になります。 今の現場に入る前に10年近くはPHPをやっていますが、まだまだ知らないこと(といいますか新しいことがふえてき …

no image

VSCodeのPluginなど

Vscodeで使っているPluginなど Contents1 基本2 UML3 git4 PHP コードフォーマット5 golang6 CSV整形 基本 Japanese Language Pack …

アーカイブ