skillup

技術ブログ

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

abstract,interface,traitなどについて

投稿日:

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

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

abstract(継承全般)

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

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

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

interface

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

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

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

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

trait

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

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

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

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

執筆者:


comment

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

関連記事

no image

小〜中規模程度のWEBアプリ作成で気をつけるべきこと

初見の処理系(ライブラリ操作)などは休日などで最小パターンを確認しておくこと。実務で何時間も悩むと非常にストレスがたまる テーブル設計命。あとで終えるようにトレースができるような値を入れておくこと。 …

no image

シェルスクリプト ファイル読み込み・switchなど

以前のエントリーに引き続き、シェルスクリプトでログを解析する処理があってそこで覚えたことなどをまとめておきます。 Contents1 ファイル読み込み2 switch文2.1 基本パターン2.2 条件 …

no image

自動テストをやる上で今まで障害だったこと

自動テストについて、考え方自体は5年以上前から知っていましたが、プロジェクトで実際に使われているのを見たのは今年4月になってからでした・・・ 自動テスト完備なんて昔は夢物語だと思ってたんですけどね・・ …

no image

トランザクショントークンについて

フォーム画面で入力を行うときにはPOSTでデータを受け取ってエラーチェックしたり、データベースに入力をしたりします。 ただその時に何も考えずに安易に送信→受信の際に以下のようなトラブルがあり得ます。 …

no image

APIのエラーコードに関して

APIのよく使われるHTTPステータスコードに関して。 基礎の基礎で当たり前に使ってましたが、基本的なことに関してまとめ。 主に4XXエラーのタイプ分けに関して。 Contents1 2002 201 …

アーカイブ