skillup

技術ブログ

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

abstract,interface,traitなどについて

投稿日:

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

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

abstract(継承全般)

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

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

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

interface

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

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

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

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

trait

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

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

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

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

執筆者:


comment

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

関連記事

no image

メモリに関して 静的領域、スタック、ヒープなど

実務でメモリの調査をしましたが、肝心のメモリについてほとんどわかっていないのでメモ。 メモリの領域を大きく分けると静的、スタック、ヒープに別れる。 Contents1 静的2 スタック3 ヒープ4 そ …

no image

コードの見た目について

リーダブルコード4章。コードの見た目について。 自分は結構注意されますね。多いパターンとしては空白の位置などがいい加減だったり、今はありませんが、以前はコードの末尾にスペースを空けてセミコロンをうつ変 …

no image

Oauthについて

今更ながら認証システムの基本などを復習中です。 今回はOauth(オーオース)について。 一般的なWebサービスを使っていると Instagramでのアカウントがある場合、それのアカウントを利用して、 …

no image

ExcelVBAに関して(主にプロシージャ)

いつも半年ごとぐらいに触っていてあまり知識が蓄積しないので(汗)これを機につまづいたところをちょっとメモ。 Contents1 基本2 メモ3 参考リンク 基本 基本的な変数の代入や条件分岐、ループな …

no image

Simple Factoryパターンについて

今回はデザインパターンの一種であるSimple Factoryパターンに関して。 Contents1 Simple Factoryパターンとは2 サンプルコード3 解説 Simple Factoryパ …

アーカイブ