Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Commit 185f82b

Browse files
committed
refactoring
1 parent c23294c commit 185f82b

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

books/refactoring.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -799,10 +799,8 @@ describe('', () => {
799799
### オブジェクトによるプリミティブの置き換え
800800

801801
- 最初は単純なデータに見えるものでも、あっという間に関連処理が増える
802-
- e.g. 電話番号であれば、整形や市外局番の抽出処理など
803-
- なので、クラスに置き換えて、データと振る舞いをもたせましょうね、ということ
804-
- 具体的な方法としては、クラスのプロパティを、まずはカプセル化したのちに、値オブジェクト or 参照オブジェクトにする
805-
- (このあたりも関数型ではどうすればよいかわからない)
802+
- e.g. 電話番号であれば、整形や市外局番の抽出処理など
803+
- なのでプリミティブな値やその処理のまとまりを見つけたら、速やかに値オブジェクト or 参照オブジェクトにしちゃいましょう
806804

807805
### 問い合わせによる一時変数の置き換え
808806

@@ -821,3 +819,19 @@ describe('', () => {
821819

822820
- クラスの抽出の逆
823821
- もはや不要になったクラスを捨てるときや、リファクタ前に一旦全部フラットにしたいときに使う
822+
823+
### 移譲の隠匿
824+
825+
- ある関数が他の関数等に処理を委譲していたとしても、利用者にはそれを見えないようにすること
826+
- 余計なことを利用者に知らせないという、カプセル化の手法の一つ
827+
828+
### 仲介人の除去
829+
830+
- 「移譲の隠匿」の逆
831+
- 隠匿が単なる仲介に成り下がっている場合は、利用者に委譲先を見せたほうが具合がいい場合もある
832+
- 要はバランス
833+
834+
### アルゴリズムの置き換え
835+
836+
- よりよい方法が見つかったらまるっと置き換える
837+
- 置き換え前後で結果に差異がないことを確認すること

0 commit comments

Comments
 (0)