タグ

設計とオブジェクト指向に関するsatoshieのブックマーク (3)

  • 君の継承の使い方は間違っている - Qiita

    オブジェクト指向はプログラミングの基です。そして、継承はオブジェクト指向の基的な操作ですから、プログラマーは呼吸をするように継承をできなくてはならないはずです1。 しかしその割に、ダメな継承の使い方をして、スパゲッティコードになるのを実務でしばしば見かけます。 これは、継承の「良い使い方」はデザインパターンとしてリストアップされているのに、「悪い使い方」はまとまっていないせいかもしれません。そこで、自分だったらコードレビューで をつけるような「悪い継承の例」を挙げてみました2。 (この記事は個人的な経験によるもので、理論的な裏付けがあるものではありません。ご意見やオススメがあれば、コメントをお願いします。また、この記事は随時細かい表現の修正をしています。) TL;DR 継承を使ってはならない Mix-inを使ってはならない super は不吉な兆候 例外条項 インターフェースの実装(

    君の継承の使い方は間違っている - Qiita
  • ユーティリティクラス不要論 | anopara

    私は昔からタイトルのようなことを思っていたが、同じようなことを主張している人はおらず、もしかしたら私が間違っているのか。と思い、あまり自信が無かったのだが、書いてみる。意見があったらTwitterとかコメント欄に書いてくれると嬉しい。 ユーティリティクラスって何だ ユーティリティクラスとは、一つのクラスにたくさんのstaticメソッドを記述したようなものです。言語によってこのクラスはシングルトンだったり、staticクラスだったりする。 たとえば、オブジェクトを適切な文字列表現に直したり、オブジェクトを別の似たようなオブジェクトに変換したり、ログを書きだしたりするような処理は一つのクラスにまとめておいてグローバルにアクセス可能なスコープに配置し、必要になったら都度そのくらすのメソッドを呼ぶ・・・みたいな使い方をする。 私の主張 完全に要らないとは言いませんが、ほとんどの場合ユーティリティク

    ユーティリティクラス不要論 | anopara
  • クラス設計の原則 — みんなのウェディングエンジニアリングブログ

    みんなのウェディングの高井です。 クラスベースのオブジェクト指向プログラミング言語を利用している人であれば、クラスとは、ありふれていて普段から利用するものです。にもかかわらず、良いクラスをつくるというのは、なかなかに難しいことです。 先日、みんなのウェディングでアルバイトをしてくれている学生さんのコードレビューをしていたときにも、それを強く感じました。 実践的プラグマティックには「ソフトウェアの規模や文脈にあわせて、適切に抽象化していただきたい」という以上のことを言っても仕方がないところなのですが、それだけでは経験の浅いプログラマーにとって、まったく分からないという話になってしまいます。 というわけで、今回はクラス設計の原則についてのお話しです。 Bertrand Meyerのクラス設計の原則 Bertrand Meyerは『オブジェクト指向入門 第2版』の中で、クラス設計について章をひと

    クラス設計の原則 — みんなのウェディングエンジニアリングブログ
  • 1