企業應用程式架構模式勘誤表
儘管我和編輯們都非常小心,但還是難免會有些錯誤。這些錯誤大多是文法上的錯字,我承認我對這些錯誤的發現能力很差。我標示了那些我認為可能會造成嚴重混淆的錯誤。對於這些錯誤,我深感抱歉,以下是已知錯誤清單
第 19 版及後續版本中的錯誤
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 16 至 19 版的錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 13 至 16 版的錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 10 至 13 次印刷錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 9 次印刷錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 8 次印刷錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 351 頁:第三段的最後一行。「(只要您的 HTML 是 XHMTL...」應改為「(只要您的 HTML 是XHTML...」。當然。[於第 9 次印刷中更正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 436 頁: 在程式碼「類別 EditCustomerCommand 實作 Command...」應改為「類別 EditCustomerCommand 延伸 BusinessTransactionCommand...」。類似地,「類別 SaveCustomerCommand 實作 Command...」應改為「類別 SaveCustomerCommand 延伸 BusinessTransactionCommand...」。(我的精緻自動匯入功能中的一個小但尷尬的差距。) [於第 9 次印刷中更正]
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 6 至 8 次印刷錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 34 頁:(僅限第 7 次印刷)在某些副本中,此頁面由於印刷錯誤而完全空白。如果您遇到此問題,請透過 John Fuller 聯絡艾迪生威斯理。[於第 8 次印刷中更正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 351 頁:第三段的最後一行。「(只要您的 HTML 是 XHMTL...」應改為「(只要您的 HTML 是XHTML...」。當然。[於第 9 次印刷中更正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 436 頁: 在程式碼「類別 EditCustomerCommand 實作 Command...」應改為「類別 EditCustomerCommand 延伸 BusinessTransactionCommand...」。類似地,「類別 SaveCustomerCommand 實作 Command...」應改為「類別 SaveCustomerCommand 延伸 BusinessTransactionCommand...」。(我的精緻自動匯入功能中的一個小但尷尬的差距。) [於第 9 次印刷中更正]
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 5 次印刷錯誤
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 34 頁:(僅限第 7 次印刷)在某些副本中,此頁面由於印刷錯誤而完全空白。如果您遇到此問題,請透過 John Fuller 聯絡艾迪生威斯理。[於第 8 次印刷中更正]
第 34 頁: 在倒數第三行,「每個表格只需要一個類別」應改為「每個表格只需要一個物件 [於第 6 次印刷中更正]
第 66 頁:在第二行,「它可能包含單一請求」應改為「它可能包含s單一請求」[於第 6 次印刷中更正]
第 67 頁:在第二段中,「...安排事情,讓程式進入隔離區...」應改為「...安排事情,讓程式s進入隔離區...」[於第 6 次印刷中更正]
第 74 頁:在第四段中,「您必須決定您要承擔哪些風險」應改為「您必須決定您要承擔哪些風險」[於第 6 次印刷中更正]
第 76 頁:在第二段的第 3 行:「...業務交易不會離開記錄...」應改為「...業務交易不會離開記錄...」[於第 6 次印刷中更正]
第 118 頁: Java 實作的第三段落「實體 Bean 無法重新進入...」應改為「實體 Bean 不應重新進入...」。(雖然你可以讓實體 Bean 重新進入,但這麼做會使你面臨一些危險的同時執行問題。) [已在第 6 次印刷中修正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 291 頁: 此頁面的第一個程式碼範例顯示 Mapper 類別的 Update 方法。
public virtual void Update (DomainObject arg) { Save (arg); }這是錯誤的程式碼片段。它應改為
public virtual long Insert (DomainObject obj) { obj.Id = GetNextID(); AddRow(obj); Save(obj); return obj.Id; }自動程式碼匯入很棒,但我仍必須匯入正確的片段! [已在第 6 次印刷中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 326 頁: PersonRepository 的程式碼範例中,這行
public List dependentsOf(aPerson) {應改為
public List dependentsOf(Person aPerson) {(第 5 次印刷已修正此問題,但引入了不同的錯誤,重複
List
:-( [已在第 6 次印刷中修正]
第 351 頁:第三段的最後一行。「(只要您的 HTML 是 XHMTL...」應改為「(只要您的 HTML 是XHTML...」。當然。[於第 9 次印刷中更正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 436 頁: 在程式碼「類別 EditCustomerCommand 實作 Command...」應改為「類別 EditCustomerCommand 延伸 BusinessTransactionCommand...」。類似地,「類別 SaveCustomerCommand 實作 Command...」應改為「類別 SaveCustomerCommand 延伸 BusinessTransactionCommand...」。(我的精緻自動匯入功能中的一個小但尷尬的差距。) [於第 9 次印刷中更正]
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 4 次印刷中的錯誤
頁面標籤: 整體而言,頁面邊緣的標籤運作良好。然而,從第 426 頁開始,所有標籤都向上移動一個刻度,這很遺憾地破壞了效果。 [已在第 5 次印刷中修正]
第 9 頁: 第二段落中有幾個地方未將 Swordfish 和 Camel 大寫。 [已在第 5 次印刷中修正]
第 17 頁: 第二段落的最後一句缺少其閉合括號。 [已在第 5 次印刷中修正]
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 24 頁: 倒數第二段的「... 嘗試保留所有程式碼...」應改為「... 嘗試保留所有節點的程式碼...」 [已在第 5 次印刷中修正]
第 33 頁: 最後一段的倒數第二句中,語言拼寫錯誤。 [已在第 5 次印刷中修正]
第 34 頁:(僅限第 7 次印刷)在某些副本中,此頁面由於印刷錯誤而完全空白。如果您遇到此問題,請透過 John Fuller 聯絡艾迪生威斯理。[於第 8 次印刷中更正]
第 34 頁: 在倒數第三行,「每個表格只需要一個類別」應改為「每個表格只需要一個物件 [於第 6 次印刷中更正]
第 44 頁: 第三段的第三句「... 將連結的物件作為嵌入式值...」應改為「... 將連結的物件作為一個嵌入式值...」 [已在第 5 次印刷中修正]
第 45 頁: 繼承區段的第一段最後一行「層級;類別表繼承」應使用冒號,而非分號。 [已在第 5 次印刷中修正]
第 52 頁: 第二段的第一句「如果您在交易之外執行某些動作...」應改為「如果您在您的交易之外執行某些動作...」所有存取交易資料庫的動作都會在某個交易中執行,但有時您希望在您關注的主要交易之外執行某些動作。[已於第 5 次印刷中更正]
第 66 頁:在第二行,「它可能包含單一請求」應改為「它可能包含s單一請求」[於第 6 次印刷中更正]
第 67 頁:在第二段中,「...安排事情,讓程式進入隔離區...」應改為「...安排事情,讓程式s進入隔離區...」[於第 6 次印刷中更正]
第 74 頁:在第四段中,「您必須決定您要承擔哪些風險」應改為「您必須決定您要承擔哪些風險」[於第 6 次印刷中更正]
第 76 頁:在第二段的第 3 行:「...業務交易不會離開記錄...」應改為「...業務交易不會離開記錄...」[於第 6 次印刷中更正]
第 76 頁: 第一段的第二句「...系統交易的提交階段,當使用者在系統交易中按下「儲存」時。」應改為「...系統交易的提交階段,當使用者在系統交易中按下「儲存」時。」(缺少逗號)[已於第 5 次印刷中更正]
第 78 頁: 最後一段的「每個會話的程序的主要問題...」應改為「每個會話的程序的主要問題...」[已於第 5 次印刷中更正]
第 83 頁: 「會話狀態」的第四段「但問題不只是變更」應改為「但問題不只是直接變更。[已於第 5 次印刷中更正]
第 91 頁: 第三行的「必須支付」應改為「必須支付」[已於第 5 次印刷中更正]
第 97 頁: 「深入資料來源層」的第一段開頭「一旦您選擇您的網域層...」應改為「一旦您選擇您的網域層...」[已於第 5 次印刷中更正]
第 101 頁: 第二段的第 6 行「CMP」應改為「容器管理持續性 (CMP)」[已於第 5 次印刷中更正]
第 102 頁: 頂端的持續段落缺少最後的句點。[已於第 5 次印刷中更正]
第 106 頁: 第五行的「我傾向於視為...」應改為「我傾向於視為...」[已於第 5 次印刷中更正]
第 117 頁: 最後一段的第二句「某些訂單行為僅僅只對它有需要」應改為「某些訂單行為僅僅只對它有需要」[已於第 5 次印刷中更正]
第 118 頁: Java 實作的第三段落「實體 Bean 無法重新進入...」應改為「實體 Bean 不應重新進入...」。(雖然你可以讓實體 Bean 重新進入,但這麼做會使你面臨一些危險的同時執行問題。) [已在第 6 次印刷中修正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 130 頁: 頁面中間的段落「更新收益確認表」應改為「更新收益確認表s(複數形式錯誤)。[已於第 5 次印刷中更正]
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 158 頁:在包含許多 append 呼叫的程式碼區塊中,最後一個呼叫缺少最後幾個字元。這行應寫成
result.append("\n");[已於第 5 次印刷中更正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 291 頁: 此頁面的第一個程式碼範例顯示 Mapper 類別的 Update 方法。
public virtual void Update (DomainObject arg) { Save (arg); }這是錯誤的程式碼片段。它應改為
public virtual long Insert (DomainObject obj) { obj.Id = GetNextID(); AddRow(obj); Save(obj); return obj.Id; }自動程式碼匯入很棒,但我仍必須匯入正確的片段! [已在第 6 次印刷中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 326 頁: PersonRepository 的程式碼範例中,這行
public List dependentsOf(aPerson) {應改為
public List dependentsOf(Person aPerson) {(第 5 次印刷已修正此問題,但引入了不同的錯誤,重複
List
:-( [已在第 6 次印刷中修正]
第 326 頁:在 Repository 的程式碼範例中,這行
protected List matching(aCriteria) {應改為
protected List matching(Criteria aCriteria) {很遺憾我的協力廠商無法利用我的自動程式碼匯入機制。[已於第 5 次印刷中更正]
第 351 頁:第三段的最後一行。「(只要您的 HTML 是 XHMTL...」應改為「(只要您的 HTML 是XHTML...」。當然。[於第 9 次印刷中更正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 436 頁: 在程式碼「類別 EditCustomerCommand 實作 Command...」應改為「類別 EditCustomerCommand 延伸 BusinessTransactionCommand...」。類似地,「類別 SaveCustomerCommand 實作 Command...」應改為「類別 SaveCustomerCommand 延伸 BusinessTransactionCommand...」。(我的精緻自動匯入功能中的一個小但尷尬的差距。) [於第 9 次印刷中更正]
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 3 次印刷中的錯誤
頁面標籤: 整體而言,頁面邊緣的標籤運作良好。然而,從第 426 頁開始,所有標籤都向上移動一個刻度,這很遺憾地破壞了效果。 [已在第 5 次印刷中修正]
第 9 頁: 第二段落中有幾個地方未將 Swordfish 和 Camel 大寫。 [已在第 5 次印刷中修正]
第 17 頁: 第二段落的最後一句缺少其閉合括號。 [已在第 5 次印刷中修正]
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 24 頁: 倒數第二段的「... 嘗試保留所有程式碼...」應改為「... 嘗試保留所有節點的程式碼...」 [已在第 5 次印刷中修正]
第 33 頁:第二段的第一個句子:「最大的原因之一」應寫成「最大的原因之一」[已於第 4 次印刷中更正]
第 33 頁: 最後一段的倒數第二句中,語言拼寫錯誤。 [已在第 5 次印刷中修正]
第 33 頁:在最後一段的最後一個句子中,「資料庫管理員 (DBA) 也喜歡...」應寫成「資料庫管理員 (DBA) 也喜歡...」[已於第 4 次印刷中更正]
第 34 頁:(僅限第 7 次印刷)在某些副本中,此頁面由於印刷錯誤而完全空白。如果您遇到此問題,請透過 John Fuller 聯絡艾迪生威斯理。[於第 8 次印刷中更正]
第 34 頁: 在倒數第三行,「每個表格只需要一個類別」應改為「每個表格只需要一個物件 [於第 6 次印刷中更正]
第 36 頁:在第二段中,「所有這些力量都推動你朝向間接」應寫成「所有這些力量都推動你朝向間接」(移除錯誤的撇號)[已於第 4 次印刷中更正]
第 44 頁: 第三段的第三句「... 將連結的物件作為嵌入式值...」應改為「... 將連結的物件作為一個嵌入式值...」 [已在第 5 次印刷中修正]
第 44 頁:在第 4 段中,「可以是二進位 (BLOB) 文字 (CLOB」應寫成「可以是二進位 (BLOB) 或文字 (CLOB」[已於第 4 次印刷中更正]
第 45 頁: 繼承區段的第一段最後一行「層級;類別表繼承」應使用冒號,而非分號。 [已在第 5 次印刷中修正]
第 45 頁:在繼承的第一段的結尾,「...關聯式系統傳統上表現不佳」應寫成「...關聯式系統傳統上表現不佳」。[已於第 4 次印刷中更正]
第 45 頁:在繼承的第一段中間,「你可以有一個 a 表格...」應寫成「你可以有一個表格...」[已於第 4 次印刷中更正]
第 48 頁:在最後一段的最後一個句子中,「你可能想要從 XML 訊息、CICS 交易和關聯式表格中提取類似的資料。」應寫成「你可能想要從 XML 訊息、CICS 交易和關聯式表格的組合中提取類似的資料。」[已於第 4 次印刷中更正]
第 49 頁:使用元資料區段的第 3 段:<field name = customer ...
應為(缺少引號)<field name = "customer" ...
[已於第 4 次印刷中更正]
第 52 頁: 第二段的第一句「如果您在交易之外執行某些動作...」應改為「如果您在您的交易之外執行某些動作...」所有存取交易資料庫的動作都會在某個交易中執行,但有時您希望在您關注的主要交易之外執行某些動作。[已於第 5 次印刷中更正]
第 61 頁:在第一段的結尾,「取決於一些條件」應寫成「取決於一些條件」[已於第 4 次印刷中更正]
第 64 頁:在第二段中,「...容易理解且 且 熟悉。」應寫成「...容易理解且熟悉。」[已於第 4 次印刷中更正]
第 66 頁:在第二行,「它可能包含單一請求」應改為「它可能包含s單一請求」[於第 6 次印刷中更正]
第 67 頁:在第二段中,「...安排事情,讓程式進入隔離區...」應改為「...安排事情,讓程式s進入隔離區...」[於第 6 次印刷中更正]
第 68 頁: 在最後一段中,「Martin 編輯 Customer 類別,該類別會呼叫 Order 類別」應寫成「Martin 編輯 Customer 類別,並新增一些呼叫到 Order 類別」。[已於第 4 次印刷中更正]
第 74 頁:在商業和系統交易之前的段落中:「... 應查看每個交易並決定...」應寫成「... 應查看每個交易並決定...」[已於第 4 次印刷中更正]
第 74 頁:在第四段中,「您必須決定您要承擔哪些風險」應改為「您必須決定您要承擔哪些風險」[於第 6 次印刷中更正]
第 76 頁:在第二段的第 3 行:「...業務交易不會離開記錄...」應改為「...業務交易不會離開記錄...」[於第 6 次印刷中更正]
第 76 頁: 第一段的第二句「...系統交易的提交階段,當使用者在系統交易中按下「儲存」時。」應改為「...系統交易的提交階段,當使用者在系統交易中按下「儲存」時。」(缺少逗號)[已於第 5 次印刷中更正]
第 78 頁: 最後一段的「每個會話的程序的主要問題...」應改為「每個會話的程序的主要問題...」[已於第 5 次印刷中更正]
第 82 頁:第三段最後一句「如果我們放棄...」應改為「如果我們放棄...」[已在第 4 次印刷中更正]
第 83 頁: 「會話狀態」的第四段「但問題不只是變更」應改為「但問題不只是直接變更。[已於第 5 次印刷中更正]
第 86 頁:第三段中間「...與您使用...一樣快速地使用許多功能」應改為「...與您使用...一樣快速地使用許多功能」[已在第 4 次印刷中更正]
第 89 頁:第五段「如果您將您的發行策略建立在a類別上...」應改為「如果您將您的發行策略建立在類別上...」[已在第 4 次印刷中更正]
第 91 頁: 第三行的「必須支付」應改為「必須支付」[已於第 5 次印刷中更正]
第 97 頁: 「深入資料來源層」的第一段開頭「一旦您選擇您的網域層...」應改為「一旦您選擇您的網域層...」[已於第 5 次印刷中更正]
第 98 頁:標題「資料來源表格模組 (125)」應改為「用於表格模組的資料來源 (125)」[已在第 4 次印刷中更正]
第 99 頁:倒數第二段缺少句號。[已在第 4 次印刷中更正]
第 99 頁:標題「簡報層」應為較高層級的標題,並以這種方式格式化(以及在內容中)。[已在第 4 次印刷中更正]
第 100 頁:在「一些技術特定建議」的第一段中間「...我專注於...的原因」應改為「...我專注於...的原因」[已在第 4 次印刷中更正]
第 101 頁: 第二段的第 6 行「CMP」應改為「容器管理持續性 (CMP)」[已於第 5 次印刷中更正]
第 102 頁: 頂端的持續段落缺少最後的句點。[已於第 5 次印刷中更正]
第 106 頁: 第五行的「我傾向於視為...」應改為「我傾向於視為...」[已於第 5 次印刷中更正]
第 117 頁: 最後一段的第二句「某些訂單行為僅僅只對它有需要」應改為「某些訂單行為僅僅只對它有需要」[已於第 5 次印刷中更正]
第 118 頁: Java 實作的第三段落「實體 Bean 無法重新進入...」應改為「實體 Bean 不應重新進入...」。(雖然你可以讓實體 Bean 重新進入,但這麼做會使你面臨一些危險的同時執行問題。) [已在第 6 次印刷中修正]
第 119 頁:「何時使用」的第二段第一句應改為「影響此決定的其中一個因素是開發團隊對網域物件的熟悉程度」[已在第 4 次印刷中更正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 130 頁: 頁面中間的段落「更新收益確認表」應改為「更新收益確認表s(複數形式錯誤)。[已於第 5 次印刷中更正]
第 148 頁:範例的第二段第二句「在尋找它時很有用...」應改為「我在尋找它時很有用...」[已在第 4 次印刷中更正]
第 150 頁: 從 public DataRow this[long key]
開始的程式碼片段中段應標示為在PersonGateway類別中 [已在第 4 次印刷中更正]
第 151 頁: 程式碼片段的標題應改為類別PersonGateway
[已在第 4 次印刷中更正]
第 151 頁:讀取 long key = new PersonGatewayDS().GetNextID()
的程式碼行應改為 long key = GetNextID()
[已在第 4 次印刷中更正]
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 158 頁:在包含許多 append 呼叫的程式碼區塊中,最後一個呼叫缺少最後幾個字元。這行應寫成
result.append("\n");[已於第 5 次印刷中更正]
第 169 頁:第二段「對於較簡單的應用程式,可能不值得...」應改為「對於較簡單的應用程式,它可能不值得...」[已在第 4 次印刷中更正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 239 頁:第五段「...但如果您的測試夠好...」應改為「...但如果您的測試夠好...」[已在第 4 次印刷中更正]
第 249 頁:「何時使用」後的第一段「...由於實際上沒有 任何 替代方案...」應為「...由於實際上沒有替代方案...」[已在第 4 次印刷中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 291 頁: 此頁面的第一個程式碼範例顯示 Mapper 類別的 Update 方法。
public virtual void Update (DomainObject arg) { Save (arg); }這是錯誤的程式碼片段。它應改為
public virtual long Insert (DomainObject obj) { obj.Id = GetNextID(); AddRow(obj); Save(obj); return obj.Id; }自動程式碼匯入很棒,但我仍必須匯入正確的片段! [已在第 6 次印刷中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 326 頁: PersonRepository 的程式碼範例中,這行
public List dependentsOf(aPerson) {應改為
public List dependentsOf(Person aPerson) {(第 5 次印刷已修正此問題,但引入了不同的錯誤,重複
List
:-( [已在第 6 次印刷中修正]
第 326 頁:在 Repository 的程式碼範例中,這行
protected List matching(aCriteria) {應改為
protected List matching(Criteria aCriteria) {很遺憾我的協力廠商無法利用我的自動程式碼匯入機制。[已於第 5 次印刷中更正]
第 351 頁:第三段的最後一行。「(只要您的 HTML 是 XHMTL...」應改為「(只要您的 HTML 是XHTML...」。當然。[於第 9 次印刷中更正]
第 354 頁:第一段的最後一句「...涉及程式邏輯,程式邏輯在各處...」應為「...涉及程式邏輯,就像程式邏輯在各處...」[已在第 4 次印刷中修正]
第 354 頁:第二段中的「...編譯該頁面 或 在其第一次請求時...」應為「...編譯該頁面在其第一次請求時...」[已在第 4 次印刷中修正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 362 頁:第二段「例如,.NET」應為「例如,.NET 物件」[已在第 4 次印刷中修正]
第 362 頁:第三段「...轉換不必是字串...」應為「...轉換不必是字串...」[已在第 4 次印刷中修正]
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 391 頁: 最後一段「主要差異在於服務層不必是遠端的,因此不必只有細緻的方法。」應為「主要差異在於服務層不必是遠端的,因此不必只有粗略的方法。」[已在第 4 次印刷中修正]
第 402 頁:第一段的第二句「資料傳輸物件 將 通常會傳送更多...」應為「資料傳輸物件通常會傳送更多...」[已在第 4 次印刷中修正]
第 406 頁:第四段開頭為「另一種替代方案是使用 一種 某種形式的...」應為「另一種替代方案是使用某種形式的...」[已在第 4 次印刷中修正]
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 436 頁: 在程式碼「類別 EditCustomerCommand 實作 Command...」應改為「類別 EditCustomerCommand 延伸 BusinessTransactionCommand...」。類似地,「類別 SaveCustomerCommand 實作 Command...」應改為「類別 SaveCustomerCommand 延伸 BusinessTransactionCommand...」。(我的精緻自動匯入功能中的一個小但尷尬的差距。) [於第 9 次印刷中更正]
第 457 頁:最後一行「...降低此風險;如果未執行,執行簡單的會話...」應為(逗號放錯位置)「...降低此風險;如果未執行,執行簡單的會話...」[已在第 4 次印刷中修正]
第 470 頁:頁面中間的錯誤訊息 Null Parameter bassed for msg type...
應為 Null Parameter passed for msg type..
。除非您喜歡將參數附加到魚上。[已在第 4 次印刷中修正]
第 475 頁:「何時使用」下的段落,開頭為「我經常...」的句子應為「我經常...」(大小寫錯誤)。[已在第 4 次印刷中修正]
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 496 頁:第二段的第二句「通常正確的做法是相同...」應為「通常正確的做法是相同...」[已在第 4 次印刷中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 502 頁:第一段的第一句「...nextId() 選取下一個可用數字...」應為「...nextId() 選取下一個可用數字...」[已在第 4 次印刷中修正]
第 502 頁:最後一段的第三句「...尋找檔案,而不是尋找...」應改為「...尋找檔案,而不是尋找...」[已在第 4 版更正]
第 505 頁:第三段「...我們的許多應用程式功能依賴...」應改為「...我們的許多應用程式功能依賴...」[已在第 4 版更正]
第 505 頁:最後一段的第一句「...已部署的稅務服務...」應改為「...已部署的稅務服務...」[已在第 4 版更正]
第 505 頁:第五段中間,第二個 Gateway (466) 遺漏了閉合括號。[已在第 4 版更正]
第 510 頁:「何時使用」的第一段「...記錄集,而且是一個令人信服的理由...」應改為「...記錄集,而且這是一個令人信服的理由...」[已在第 4 版更正]
第 1 版至第 3 版的錯誤
頁面標籤: 整體而言,頁面邊緣的標籤運作良好。然而,從第 426 頁開始,所有標籤都向上移動一個刻度,這很遺憾地破壞了效果。 [已在第 5 次印刷中修正]
封底內頁: 在「如何與資料庫互動」下新增一行「我正在使用 Table Module(125) -> Table Data Gateway(144) [已在第 3 版更正]
第 9 頁: 第二段落中有幾個地方未將 Swordfish 和 Camel 大寫。 [已在第 5 次印刷中修正]
第 17 頁: 第二段落的最後一句缺少其閉合括號。 [已在第 5 次印刷中修正]
第 21 頁:第 5 行「沒有人類」應改為「沒有一個人類」。[已在第 19 版中修正]
第 21 頁:頂行:「特別適用於與現有套件進行通訊」應改為「特別常見於與現有套件進行通訊」[於第 13 次印刷中更正]
第 24 頁: 倒數第二段的「... 嘗試保留所有程式碼...」應改為「... 嘗試保留所有節點的程式碼...」 [已在第 5 次印刷中修正]
第 33 頁:第二段的第一個句子:「最大的原因之一」應寫成「最大的原因之一」[已於第 4 次印刷中更正]
第 33 頁: 最後一段的倒數第二句中,語言拼寫錯誤。 [已在第 5 次印刷中修正]
第 33 頁:在最後一段的最後一個句子中,「資料庫管理員 (DBA) 也喜歡...」應寫成「資料庫管理員 (DBA) 也喜歡...」[已於第 4 次印刷中更正]
第 34 頁:(僅限第 7 次印刷)在某些副本中,此頁面由於印刷錯誤而完全空白。如果您遇到此問題,請透過 John Fuller 聯絡艾迪生威斯理。[於第 8 次印刷中更正]
第 34 頁: 在倒數第三行,「每個表格只需要一個類別」應改為「每個表格只需要一個物件 [於第 6 次印刷中更正]
第 36 頁:在第二段中,「所有這些力量都推動你朝向間接」應寫成「所有這些力量都推動你朝向間接」(移除錯誤的撇號)[已於第 4 次印刷中更正]
第 44 頁: 第三段的第三句「... 將連結的物件作為嵌入式值...」應改為「... 將連結的物件作為一個嵌入式值...」 [已在第 5 次印刷中修正]
第 44 頁:在第 4 段中,「可以是二進位 (BLOB) 文字 (CLOB」應寫成「可以是二進位 (BLOB) 或文字 (CLOB」[已於第 4 次印刷中更正]
第 45 頁: 繼承區段的第一段最後一行「層級;類別表繼承」應使用冒號,而非分號。 [已在第 5 次印刷中修正]
第 45 頁:在繼承的第一段的結尾,「...關聯式系統傳統上表現不佳」應寫成「...關聯式系統傳統上表現不佳」。[已於第 4 次印刷中更正]
第 45 頁:在繼承的第一段中間,「你可以有一個 a 表格...」應寫成「你可以有一個表格...」[已於第 4 次印刷中更正]
第 48 頁:在最後一段的最後一個句子中,「你可能想要從 XML 訊息、CICS 交易和關聯式表格中提取類似的資料。」應寫成「你可能想要從 XML 訊息、CICS 交易和關聯式表格的組合中提取類似的資料。」[已於第 4 次印刷中更正]
第 49 頁:使用元資料區段的第 3 段:<field name = customer ...
應為(缺少引號)<field name = "customer" ...
[已於第 4 次印刷中更正]
第 52 頁: 第二段的第一句「如果您在交易之外執行某些動作...」應改為「如果您在您的交易之外執行某些動作...」所有存取交易資料庫的動作都會在某個交易中執行,但有時您希望在您關注的主要交易之外執行某些動作。[已於第 5 次印刷中更正]
第 61 頁:在第一段的結尾,「取決於一些條件」應寫成「取決於一些條件」[已於第 4 次印刷中更正]
第 64 頁:在第二段中,「...容易理解且 且 熟悉。」應寫成「...容易理解且熟悉。」[已於第 4 次印刷中更正]
第 66 頁:在第二行,「它可能包含單一請求」應改為「它可能包含s單一請求」[於第 6 次印刷中更正]
第 67 頁:在第二段中,「...安排事情,讓程式進入隔離區...」應改為「...安排事情,讓程式s進入隔離區...」[於第 6 次印刷中更正]
第 68 頁: 在最後一段中,「Martin 編輯 Customer 類別,該類別會呼叫 Order 類別」應寫成「Martin 編輯 Customer 類別,並新增一些呼叫到 Order 類別」。[已於第 4 次印刷中更正]
第 71 頁:第三段「每個交易都必須在全有或全無的基礎上完成」應改為「每個交易都必須在全有或全無的基礎上完成」。[已在第 3 版更正]
第 74 頁:在商業和系統交易之前的段落中:「... 應查看每個交易並決定...」應寫成「... 應查看每個交易並決定...」[已於第 4 次印刷中更正]
第 74 頁:在第四段中,「您必須決定您要承擔哪些風險」應改為「您必須決定您要承擔哪些風險」[於第 6 次印刷中更正]
第 75 頁:第二段「這就是我們所謂的業務交易,而且顯示與系統交易相同的 ACID 屬性,這似乎是一個合理的期望」應改為「這就是我們所謂的業務交易,而且它顯示與系統交易相同的 ACID 屬性,這似乎是一個合理的期望」。[已在第 3 版更正]
第 76 頁:在第二段的第 3 行:「...業務交易不會離開記錄...」應改為「...業務交易不會離開記錄...」[於第 6 次印刷中更正]
第 76 頁: 第一段的第二句「...系統交易的提交階段,當使用者在系統交易中按下「儲存」時。」應改為「...系統交易的提交階段,當使用者在系統交易中按下「儲存」時。」(缺少逗號)[已於第 5 次印刷中更正]
第 78 頁: 最後一段的「每個會話的程序的主要問題...」應改為「每個會話的程序的主要問題...」[已於第 5 次印刷中更正]
第 82 頁:第三段最後一句「如果我們放棄...」應改為「如果我們放棄...」[已在第 4 次印刷中更正]
第 83 頁: 「會話狀態」的第四段「但問題不只是變更」應改為「但問題不只是直接變更。[已於第 5 次印刷中更正]
第 86 頁:第三段中間「...與您使用...一樣快速地使用許多功能」應改為「...與您使用...一樣快速地使用許多功能」[已在第 4 次印刷中更正]
第 88 頁: 圖 7.1 的圖說應改為「透過將不同的元件放在不同的節點來分配應用程式(不建議!)」[已在第 3 版更正]
第 89 頁:第五段「如果您將您的發行策略建立在a類別上...」應改為「如果您將您的發行策略建立在類別上...」[已在第 4 次印刷中更正]
第 91 頁: 第三行的「必須支付」應改為「必須支付」[已於第 5 次印刷中更正]
第 91 頁: 「處理分佈邊界」部分的第二段,「粗粒度物件實際上什麼都不做,但它們作為細粒度物件的外觀」應改為「粗粒度物件實際上什麼都不做,但委派它們作為細粒度物件的外觀」。[已在第 3 版更正]
第 96 頁:第四段「此外,我的經驗」應改為「此外,我的經驗...」(錯誤的句點。)[已在第 3 版更正]
第 97 頁: 「深入資料來源層」的第一段開頭「一旦您選擇您的網域層...」應改為「一旦您選擇您的網域層...」[已於第 5 次印刷中更正]
第 98 頁:標題「資料來源表格模組 (125)」應改為「用於表格模組的資料來源 (125)」[已在第 4 次印刷中更正]
第 99 頁:倒數第二段缺少句號。[已在第 4 次印刷中更正]
第 99 頁:標題「簡報層」應為較高層級的標題,並以這種方式格式化(以及在內容中)。[已在第 4 次印刷中更正]
第 100 頁:在「一些技術特定建議」的第一段中間「...我專注於...的原因」應改為「...我專注於...的原因」[已在第 4 次印刷中更正]
第 101 頁: 第二段的第 6 行「CMP」應改為「容器管理持續性 (CMP)」[已於第 5 次印刷中更正]
第 101 頁:第一段的最後一句「如果您不確定 EJB...」應刪除。(沒有任何意義,我只能想到它來自後面的段落。)[已在第 3 版更正]
第 102 頁: 頂端的持續段落缺少最後的句點。[已於第 5 次印刷中更正]
第 106 頁: 第五行的「我傾向於視為...」應改為「我傾向於視為...」[已於第 5 次印刷中更正]
第 106 頁:第二段「...Nilsson 廣泛使用儲存程序,」應改為「...Nilsson 廣泛使用儲存程序。」[已在第 3 版更正]
第 113 頁:類別 Gateway
的 findRecognitionsFor()
程式碼範例中存在冗餘。第二行程式碼:stmt = db.prepareStatement(findRecognitionsStatement);
可以移除,因為它與前一行執行相同的動作。[已在第 3 版中更正]
第 117 頁: 最後一段的第二句「某些訂單行為僅僅只對它有需要」應改為「某些訂單行為僅僅只對它有需要」[已於第 5 次印刷中更正]
第 118 頁: Java 實作的第三段落「實體 Bean 無法重新進入...」應改為「實體 Bean 不應重新進入...」。(雖然你可以讓實體 Bean 重新進入,但這麼做會使你面臨一些危險的同時執行問題。) [已在第 6 次印刷中修正]
第 119 頁:「何時使用」的第二段第一句應改為「影響此決定的其中一個因素是開發團隊對網域物件的熟悉程度」[已在第 4 次印刷中更正]
第 121 頁:在類別圖中,Product 類別上的方法「calculateRecognitions」應為「calculateRevenueRecognitions」(為與第 123 頁的程式碼保持一致)
第 122 頁:第一段中的「策略模式 [四人幫] 是眾所周知的 OO 模式,它允許您組合一個群組...」應改為「策略模式 [四人幫] 是眾所周知的 OO 模式,它允許您將一個群組組合...」[已在第 3 版中更正]
第 130 頁: 頁面中間的段落「更新收益確認表」應改為「更新收益確認表s(複數形式錯誤)。[已於第 5 次印刷中更正]
第 139 頁:ApplicationService 的 UML 類別圖中,方法清單「+getIntegationGateway() : IntegrationGateway」應改為「+getIntegrationGateway() : IntegrationGateway」。[已在第 3 版中更正]
第 141 頁:ApplicationServiceBeanImpl 的 UML 類別圖中,方法清單「+getIntegationService() : IntegrationService」應改為「+getIntegrationService() : IntegrationService」。[已在第 3 版中更正]
第 145 頁:第二段中的「雙向相依性網域物件」應改為「在網域物件之間的雙向相依性」。[已在第 3 版中更正]
第 148 頁:範例的第二段第二句「在尋找它時很有用...」應改為「我在尋找它時很有用...」[已在第 4 次印刷中更正]
第 149 頁: 建構函式 (protected DataSetGateway(
) 和 protected DataSetGateway(DataSetHolder holder)
) 應改為 protected DataGateway(
) 和 protected DataGateway(DataSetHolder holder)
[已在第 3 版中更正]
第 150 頁: 從 public DataRow this[long key]
開始的程式碼片段中段應標示為在PersonGateway類別中 [已在第 4 次印刷中更正]
第 151 頁: 程式碼片段的標題應改為類別PersonGateway
[已在第 4 次印刷中更正]
第 151 頁:讀取 long key = new PersonGatewayDS().GetNextID()
的程式碼行應改為 long key = GetNextID()
[已在第 4 次印刷中更正]
第 156 頁: 在 PersonGateway.update() 和 insert() 的程式碼範例中,使用了 getID() 方法,但並未說明 getID() 的來源。ID 會儲存在資料列閘道中的層超級類型 [無法在重印版中修正]
第 158 頁:在包含許多 append 呼叫的程式碼區塊中,最後一個呼叫缺少最後幾個字元。這行應寫成
result.append("\n");[已於第 5 次印刷中更正]
第 169 頁:第二段「對於較簡單的應用程式,可能不值得...」應改為「對於較簡單的應用程式,它可能不值得...」[已在第 4 次印刷中更正]
第 189 頁:第二句中的「多個執行緒無法取得工作單位的存取權」應改為「多個執行緒無法取得對工作單位的存取權」。[已在第 3 版中更正]
第 189 頁:「.NET 實作」段落中的「資料集,是一系列排列成表格、列、資料庫和欄位的物件。」應改為「資料集,是一系列排列成資料庫表格、列、資料庫 和欄位的物件。」[已在第 3 版中更正]
第 192 頁:最後一段文字,「現在我們現在可以」應改為「現在我們可以現在」[已在第 19 版中修正]
第 201 頁:在第六段中,「These problem don't hit」應為「These problems don't hit」
第 201 頁:在第二段中,「a legal value field value」應為「a legal value field value」
第 206 頁:在最後一個程式碼範例中,標題「class Domain Object」應為「class DomainObject」(無空格)
第 207 頁:在第一個程式碼範例中,類別 Domain Object 應改為 class DomainObject(無空格)。[於第 10 次印刷中更正]
第 211 頁:在第三段中,「… a loading function than can be supplied …」應為「… a loading function that can be supplied …」
第 238 頁:第四段,最後一句。「與資料庫的差異是你正在使用」應改為「與資料庫的差異如果你正在使用」[已在第 16 版中修正]
第 239 頁:第五段「...但如果您的測試夠好...」應改為「...但如果您的測試夠好...」[已在第 4 次印刷中更正]
第 249 頁:「何時使用」後的第一段「...由於實際上沒有 任何 替代方案...」應為「...由於實際上沒有替代方案...」[已在第 4 次印刷中修正]
第 259 頁:在第一個文字段落的第四行中,「If it not I load…」應為「If not, I load…」
第 270 頁:第一段中的「指 tit」應改為「指它」。那些認為他們發現佛洛伊德式筆誤的人應該注意,在英國有一種名為 山雀 的小型鳥類。[已在第 3 版中更正]
第 279 頁:最後一段的開頭「Rremember」應為「Remember」[已在第 16 版中修正]
第 291 頁: 此頁面的第一個程式碼範例顯示 Mapper 類別的 Update 方法。
public virtual void Update (DomainObject arg) { Save (arg); }這是錯誤的程式碼片段。它應改為
public virtual long Insert (DomainObject obj) { obj.Id = GetNextID(); AddRow(obj); Save(obj); return obj.Id; }自動程式碼匯入很棒,但我仍必須匯入正確的片段! [已在第 6 次印刷中修正]
第 294 頁:第二段的結尾「因此,你因此需要一個金鑰」過於累贅 [已在第 16 版中修正]
第 326 頁: PersonRepository 的程式碼範例中,這行
public List dependentsOf(aPerson) {應改為
public List dependentsOf(Person aPerson) {(第 5 次印刷已修正此問題,但引入了不同的錯誤,重複
List
:-( [已在第 6 次印刷中修正]
第 326 頁:在 Repository 的程式碼範例中,這行
protected List matching(aCriteria) {應改為
protected List matching(Criteria aCriteria) {很遺憾我的協力廠商無法利用我的自動程式碼匯入機制。[已於第 5 次印刷中更正]
第 331 頁: 第三段中的「基本上,簡報和檢視是關於不同的問題」應改為「基本上,簡報和模型是關於不同的問題。」在此模式中,我認為簡報是 MVC 檢視和 (輸入) 控制器結合的結果。[已在第 3 版中更正]
第 331 頁:第三段中的「and they people」應更正為「and they」[已在第 3 次印刷中更正]
第 351 頁:第三段的最後一行。「(只要您的 HTML 是 XHMTL...」應改為「(只要您的 HTML 是XHTML...」。當然。[於第 9 次印刷中更正]
第 354 頁:第一段的最後一句「...涉及程式邏輯,程式邏輯在各處...」應為「...涉及程式邏輯,就像程式邏輯在各處...」[已在第 4 次印刷中修正]
第 354 頁:第二段中的「...編譯該頁面 或 在其第一次請求時...」應為「...編譯該頁面在其第一次請求時...」[已在第 4 次印刷中修正]
第 357 頁:在第三個項目符號中,「(他面對的球數除以他得的分數)」應反過來:「(他得的分數除以他面對的球數)」
第 362 頁:第二段「例如,.NET」應為「例如,.NET 物件」[已在第 4 次印刷中修正]
第 362 頁:第三段「...轉換不必是字串...」應為「...轉換不必是字串...」[已在第 4 次印刷中修正]
第 371 頁:範例區段的第一個句子。「這種兩步驟檢視方法使用兩階段 XLST 轉換」應改為「這種兩步驟檢視方法使用兩階段 XSLT 轉換」[已在第 19 版中修正]
第 374 頁:在第二個程式碼範例中,應移除程式碼行 album = Album.findNamed("1234");
。
第 380 頁:第一段,第一個句子。「檢視用於顯示回應」應改為「檢視用於顯示回應」[已在第 16 版中修正]
第 389 頁:「運作方式」下的第一個句子。「Remote Facade tackles the distribution problem which the standard OO approach...」應為「Remote Facade tackles the distribution problem with the standard OO approach...」
第 391 頁: 最後一段「主要差異在於服務層不必是遠端的,因此不必只有細緻的方法。」應為「主要差異在於服務層不必是遠端的,因此不必只有粗略的方法。」[已在第 4 次印刷中修正]
第 402 頁:第一段的第二句「資料傳輸物件 將 通常會傳送更多...」應為「資料傳輸物件通常會傳送更多...」[已在第 4 次印刷中修正]
第 402 頁: 第三段中的「you usually don't want the domain object classes on the server」應更正為「you usually don't want the domain object classes on the client [已在第 3 次印刷中更正]
第 406 頁:第四段開頭為「另一種替代方案是使用 一種 某種形式的...」應為「另一種替代方案是使用某種形式的...」[已在第 4 次印刷中修正]
第 412 頁:第二個句子有贅字:「我撰寫方法來讀取和寫入 XML 元素,以表示該類別每個資料傳輸物件類別。」[已在第 16 版中修正]
第 423 頁:最後一個程式碼區塊,第一行 class class AbstractMapper...
應改為 class
[已在第 19 版中修正]class AbstractMapper...
第 423 頁:在頁面底部的程式碼範例中,我們需要插入另一行程式碼。在 stmt.setLong(1,object.getId().longValue());
之後,新增 stmt.setInt(2, object.getVersion() + 1);
[已在第 16 版中修正]
第 429 頁:倒數第二行。「存取鎖定表格必須序列化」應改為「存取鎖定表格必須序列化」
第 432 頁:在程式碼區塊中,class ExclusiveReadLockManagerDBImpl implements ExclusiveLockManager...
應改為 class ExclusiveReadLockManagerDBImpl implements ExclusiveReadLockManager
[已在第 19 版中修正]
第 432 頁:在 create table
程式碼列中,ownerid bigint
應改為 ownerid varchar
第 436 頁: 在程式碼「類別 EditCustomerCommand 實作 Command...」應改為「類別 EditCustomerCommand 延伸 BusinessTransactionCommand...」。類似地,「類別 SaveCustomerCommand 實作 Command...」應改為「類別 SaveCustomerCommand 延伸 BusinessTransactionCommand...」。(我的精緻自動匯入功能中的一個小但尷尬的差距。) [於第 9 次印刷中更正]
第 457 頁:最後一行「...降低此風險;如果未執行,執行簡單的會話...」應為(逗號放錯位置)「...降低此風險;如果未執行,執行簡單的會話...」[已在第 4 次印刷中修正]
第 470 頁:頁面中間的錯誤訊息 Null Parameter bassed for msg type...
應為 Null Parameter passed for msg type..
。除非您喜歡將參數附加到魚上。[已在第 4 次印刷中修正]
第 475 頁:「何時使用」下的段落,開頭為「我經常...」的句子應為「我經常...」(大小寫錯誤)。[已在第 4 次印刷中修正]
第 485 頁:在最後一個程式碼範例中,程式碼行 Person martin = Registry.personFinder().find(1);
應改為 Person martin = f1.find(1);
[於第 10 次印刷中更正]
第 494 頁:所示的配置演算法僅適用於正數金額。我將負數金額的解決方案留給讀者練習。[無法在再版中修正]
第 496 頁:第二段的第二句「通常正確的做法是相同...」應為「通常正確的做法是相同...」[已在第 4 次印刷中修正]
第 497 頁:在第二段的最後一句,「即使您無法進行大量計費,您也可以累積居住者客戶的費用」應改為「即使您無法進行大量計費,您也可以累積居住者客戶的費用」[於第 10 次印刷中更正]
第 502 頁:第一段的第一句「...nextId() 選取下一個可用數字...」應為「...nextId() 選取下一個可用數字...」[已在第 4 次印刷中修正]
第 502 頁
程式碼範例中有錯誤。plugin factory 類別中的靜態程式碼應更正為
static { try { String propsFile = System.getProperty("plugins"); props.load(new FileInputStream(propsFile)); } catch (Exception ex) { throw new ExceptionInInitializerError(ex); } }
對我來說,這是一個相當令人驚訝的錯誤,因為我為我的自動程式碼匯入系統感到自豪,可以避免此類錯誤。更糟的是,我無法找出這個錯誤是如何產生的。即使是我寄給 AW 的最後一份 Framemaker 檔案也包含正確的程式碼。有些謎團永遠會困擾著我們。
[已在第 3 次印刷中更正]第 502 頁:最後一段的第三句「...尋找檔案,而不是尋找...」應改為「...尋找檔案,而不是尋找...」[已在第 4 版更正]
第 503 頁: 在中間位置,程式碼範例標題 class IdGenerator
應更正為 interface IdGenerator
。[已在第 3 次印刷中更正]
第 505 頁:第三段「...我們的許多應用程式功能依賴...」應改為「...我們的許多應用程式功能依賴...」[已在第 4 版更正]
第 505 頁:最後一段的第一句「...已部署的稅務服務...」應改為「...已部署的稅務服務...」[已在第 4 版更正]
第 505 頁:第五段中間,第二個 Gateway (466) 遺漏了閉合括號。[已在第 4 版更正]
第 510 頁:「何時使用」的第一段「...記錄集,而且是一個令人信服的理由...」應改為「...記錄集,而且這是一個令人信服的理由...」[已在第 4 版更正]
第 512 頁: [Brown and Whitenack] 的網址應為 http://members.aol.com/kgb1001001/Chasms.htm。我在書中未將 Chasms 大寫。[已在第 3 次印刷中更正]
非常感謝 =Duncan Sung W. Kim、Kent Wang、Pradyumn Sharma、Timothy Halloran、Kaspar Thommen、Roger Stasko、Einar Jónsson、Ray Ye、Neil Lowden、David van Leerdam、Yamano Yuji、Anatoly Varakin、Chris Bernard、Mark Wilden、Eduard Penzhorn、Gregor Hohpe、Craig Demyanovich、Thierry Bernard、Scott Hodson、Geoff Catlin、Danny Trieu、Ray Ye、Ted Schrader、Héctor Domínguez、Steve Berczuk、George Hicks、Yousif Masoud、Dylan Nissley 和 Emanuel Reisinger 發現並告訴我這些錯誤