0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

プログラムを書くときの注意点:その2

Last updated at Posted at 2020-08-17

【概要】

1.結論
2.オープン・クローズドの原則とは何か
3.オープン・クローズドの原則どう使うのか
4.なぜオープン・クローズドの原則が必要か
5.ここから学んだこと

1.結論

オープン・クローズドの原則にも従う!

2.オープン・クローズドの原則とは何か

●オープン・クローズドの原則とは、


拡張に対して開いていて、
修正に対して閉じていなければならない



つまり、拡張する分にはOKだけど、
拡張した時の修正範囲は最小限に止めようね。
そうしないと破壊的変更(とてつもない修正)を
しないといけなくなるということです!

3.オープン・クローズドの原則はどう使うのか

言葉だけではイメージがしにくいと思うので
例を挙げてみます!

オープン・クローズドの原則
class A
  class Interface B 

class *** implements Cinterface名)B

class Interface B
  puts ******
オープン・クローズドの原則ではない
class A
 class B
  puts ******

ただあまりにも抽象化しすぎると、
本当に必要でないクラスができてしまいます。
(上記ではわかりやすくするために簡素化しているので
”オープン・クローズドの原則ではない”方がわかりやすいですし、
class A
puts ****でいいまであります。)

上記は簡単に書いているのでまだ追えていますが、
階層が深くなるとどこにいるのか
わからない(可読性がなくなる)
部分がでてきます。

なので、変更箇所が今後ありそうな箇所を
予測した際に有効で、難しい原則です。

これは”プログラムを書くときの注意点:その4(次々回投稿)”
のインターフェース分離の原則でも関わってきます。


4.なぜオープン・クローズドの原則が必要か

結論としては、プログラミングを書く際の要は以下の
3つに集約されると思っています。

Ⅰ)保守性:修正(エラー発見のしやすさ)・管理のしやすさ
Ⅱ)拡張性:追加機能実装のしやすさ
Ⅲ)可読性:記述のわかりやすさ
が必要だと考えております。

上記3つのことは自分が他の4つの原則を説明する際に同じことを言うので、
5つの原則のうちどれかを読んでいただくと
結論はすべてこの3つに収まります。

つまり、上の3つを叶えるには
オープン/クローズドの原則に”も(他の4つの原則もあるので)”従う!!

5.ここから学んだこと

i)implements,interfaceメソッドを知ることができました!

ii)implements,interfaceメソッドを駆使することで
可読性かつ保守性のあるプログラムをかけますが、あまり不本意に適用
したらいいわけでないと思いました。プロジェクトでお客さまに提案する際や、
今後拡張しそうな箇所を予測した上で使う原則であり、非常に奥深い原則だなと感じました。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?