0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

継承の問題点に関して(良いコード悪いコードで学ぶ設計入門のsection8を読んで)

Last updated at Posted at 2024-07-28

目的

エンジニア2年目で、コードの共通化に関して悩み始めたため、勉強し始めた。

背景

前回、密結合に関して記事を書いたが、継承にも問題点が多いらしいため、継承についてシンプルに記載したい。

本文

継承の問題点

・スーパークラスを変更すると、サブクラスに影響が出る。
・スーパークラスはサブクラスのことを考えずに変更しがち。
・サブクラスがスーパークラスのメソッドを使用できるようになるため、共通ロジック置き場になりやすい。

思い当たる例

・基底クラスとサブクラスがある時に、基底クラスのメソッドをオーバーライドして、得たい機能を実現していく。
・しかし、オーバーライド実装には、基底クラス側のロジックを知っていないとできない。
・このように関連知識が基底と継承それぞれに分離しているものは、良い設計とは言えないとこのこと。

改善方法

・下手に継承を使わず、単一責任原則を重要にすること
・値オブジェクト、コンポジション構造で設計できないか検討すること。

次のアクション

何が問題で何が正解なのか、知らない知識が多い。
とりあえず、わからない時にどこを見たら正解か、どんなやり方があるのかの検討をつけられるようにしたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?