Skip to content.

Sections
Personal tools
You are here: Home » コミュニティ » XP-jp » XP書籍 » リファクタリング正誤表

Document Actions

「リファクタリング」正誤表

最終更新日:2005/07/19


本家Martin Fowlerによる正誤表

ご協力いただいた方

エラーを見つけた場合の連絡先


第11刷で判明している誤り

表紙裏 2行目
「アルゴリズムの取り換え」
-> 「アルゴリズムの取り替え」

表紙裏 対向ページ 下から13行目
「ポリフォーフィズムによる条件記述の置き換え」
-> 「ポリモーフィズムによる条件記述の置き換え」

表紙裏 「メソッドの引き下げ」のページ番号
p308 -> p328

p.98 testReadAtEnd()メソッドの5行目
assertEquals(-1, ch);
-> assertEquals(“read at end”, -1, _input.read());

p.222 最終段落
(BloodGroupのgetCodeメソッドは他から使われているため、privateに指定することはできない。)

p.301 最下部2行目からp302 6行目までのコード
(フィールド_id がfinal指定されているため、initializeIdメソッドで変更することができない。)


第11刷で修正した誤り

p.120 3行目
一時変数のすべての参照を式に置き換える。
->一時変数のすべての参照を新たなメソッドに置き換える。

p.159 1行目
department(Person manager)
-> Department(Person manager)

p.166 「例:ラッパーを使った場合」の最初のコード
class MfDate
-> class MfDateWrap

p.176 1行目
getメソッドを
-> setメソッドを

p.194 下の方の「if (isNotInteger(getEnd())}」は「if (isNotInteger(getEnd()))」


第5刷で修正した誤り

p.xxi http://ourworld.compuserve.com/homepages/martin_fowler
-> 現在以下のURLに変わっています。
http://www.martinfowler.com

p.70 15行目
McConnel
-> McConnell (2箇所)

p.76 重複したコードの3段落目、2行目の最後
「フィールドの引き上げ(320)」
->「メソッドの引き上げ(322)」

p.92 図4.1の最上部のパッケージ名
test.framework
-> junit.framework

p.121 「手順」の最後
「問い合わせによる一時変数の置き換え(120)」
->「一時変数のインライン化(119)」

p.122 (コードを除いて)下から2行目
「問い合わせによる一時変数の置き換え(120)」
->「一時変数のインライン化(119)」

p.123 l.4 final double discountFactor();
-> final double discountFactor;

p.136 l.-10 class Account
-> class Account ...

p.176 中ほどの「each.getCustomerName()」は「each.getCustomer()」

p.201 下の方の「_customer:」は「_customer;」

p.201 下の方の「void addOrder(Order arg)」は「void addOrder(Order arg) {」

p.212 6行目の「}」は不要

p.219 手順の4つ目、補足説明の1行目
引数にタイプコードを使うメソッドは、引数に新しいクラスのインスタンスを使う新しいメソッドが必要である。
-> 引数にタイプコードを使うメソッドには、引数に新しいクラスのインスタンスを使う新しいメソッドが必要である。

p.219 手順の4つ目、補足説明の2~3行目
タイプコードを返すメソッドは、そのタイプコードを返す新しいメソッドが必要である。
-> タイプコードを返すメソッドには、新たなクラスのインスタンスを返す新しいメソッドが必要である。

p.225 「Employee create(int type)」は static が必要

p.222 中段下の、取消線がつけられたコード
public int getBloodGroup() {
-> public int getBloodGroupCode() {

p.225 「class Employee」に「...」が無い。「}」のインデント誤り

p.254 下から3行目、下から10行目の「))」は「)」

p.271 l.-6 を作成するしてもよいでしょう。
-> を作成してもよいでしょう。

p.300 手順
以下の最初の2つの手順を、手順の最後に移動する。
(最初にfinalにしてしまうと、setメソッドが動かなくなってしまうため)
□そのフィールドがfinal指定されていなければ、finalにする。
□コンパイルしてテストする。

p.313 最初のコードの3行目
Assert.isTrue("出金額が多すぎる", amount > _balance);
-> Assert.isTrue("残高が足りている", amount <= _balance);

p.315 動機
チェックされる例外を発生させているが、
-> 例外を発生させているが、

p.349 l.-16 & p.350 l.22
String result = headerString(aCustomer)"
-> String result = headerString(aCustomer);

p389 真ん中あたりのURL
www.cs.vivc.edu
-> www.cs.uiuc.edu

p.398 参考文献2 訳あり「人月の神話」(アジソン・ウェスレイ・パブリッシャーズ・ジャパン)に収録

p.404 図14.1 "Hello" -> "hello"
"out" -> "Hello World"(最右下)

p.414 [Java Spec] 訳あり「Java言語仕様」(アジソン・ウェスレイ・パブリッシャーズ・ジャパン)
原書は第2版が出ている

p.414 JUnitのURL
compuserv
-> compuserve

p.415 [McConnell] 訳あり「コードコンプリート」(アスキー)

p.415 [Meyer] 初版は訳あり「オブジェクト指向入門」(アスキー)


ご協力いただいた方(順不同、敬称略)

堂坂真司さん、水越明哉さん、木山さん、矢崎博英さん、安田貴昇さん、天野知彦さん


連絡先

誤植や誤訳、問題点の指摘を歓迎します。お気づきの方は、こちらまでメールをお送りください。