《設計模式與IBMWebSpherePortal套用開發》是2008年電子工業出版社出版的圖書,作者是王立、鄭長慶、陳喜倫、閆志東。
基本介紹
- 書名:設計模式與IBMWebSpherePortal套用開發
- 作者:王立 鄭長慶 陳喜倫 閆志東
- ISBN:9787121071720
- 頁數:404頁
- 定價:¥49.80元
- 出版社:電子工業出版社
- 出版時間:2008-10-1
- 開本:16開
內容介紹,關於作者,前言,目的,讀者群,內容結構,目錄,
內容介紹
提供了詳細的Java Portlet規範1.0的中文譯本供讀者學習參考,並以IBM WebSphere Portal作為實際驗證和操作的平台,指導用戶基於IBM WebSphere Portal開發功能豐富多樣的Portal套用,使讀者在熟悉IBM WebSphere Portal套用開發的同時,進一步理解設計模式,做到舉一反三。
本書屬於軟體設計和開發方面的中高級套用書籍,具有理論介紹、經驗交流與實踐指導並重的特點。使讀者在學習IBM WebSphere Portal企業級協作套用開發的同時,深入了解並套用Java Portlet開發與設計模式,具有較高的套用價值。
本書的讀者對象為從事軟體設計、開發的工程人員,以及全日制高校計算機系及相關科系高年級本科生、研究生。
關於作者
王立,1998年畢業於西安交通大學電子工程系,2002年於西安交通大學計算機科學與技術系獲碩士學位,2005年獲博士學位。同年7月加入IBM中國開發中心,先後參與過IBM Lotus和Rational產品線的相關開發工作。目前服務於IBM中國系統與技術中心,從事軟體開發過程與企業級協作方面的研發工作。
鄭長慶,2005年畢業於浙江大學計算機套用專業,獲碩士學位。同年5月加入IBM中國開發中心,從事iSeries上IBM Workplace, WebSphere Portal等相關產品工作。目前主要從事IBM iSeries Web Administrator開發。對J2EE, Web Services, SOA及System i等相關技術感興趣。
陳喜倫,2003年畢業於中國礦業大學(徐州)計算機專業,2006年畢業於西安交通大學計算機軟體與理論專業,獲碩士學位。同年7月加入IBM中國開發中心,從事IBM Workplace, WebSphere Portal等產品的相關工作。目前從事於針對中小企業的VoIP Solution的開發工作。對J2EE、Eclipse、軟體設計、面向對象、設計模式、極限編程和敏捷開發等技術和方法感興趣。
閆志東,2007年畢業於南開大學計算機軟體與理論專業,獲碩士學位。同年7月加入IBM中國開發中心,主要從事IBM Rational解決方案的設計開發工作。對J2EE, Java, C/C++和Windows, Linux軟體開發均有興趣。
前言
筆者自加入IBM中國開發中心以來,參與過Lotus和Rational產品線的開發工作。由於工作的原因,每日都要與程式代碼打交道。所寫的每一行代碼都將是產品的組成部分,都將發布給客戶使用,從而關乎客戶的切身利益,關乎公司的形象效益,同時也關乎個人的前途發展。這一行行代碼就像飛機身上的螺絲釘,雖然不起眼,卻是萬萬不能馬虎了事的。
提高員工的工作效率,保證代碼的優良質量是信息技術行業所有企業追求的目標。常聽一些朋友說,判斷“IT民工”和“IT精英”的標準就是看他對設計模式的掌握使用程度。雖然我不能完全贊同這種觀點,但設計模式對程式開發人員的重要程度是毋庸置疑的,掌握設計模式對提高程式設計師的素質也是必不可少的。
在Web套用日益豐富和普及的今天,您可能聽人談論過Portal、Portlet,看到過各種介紹“門戶”的宣傳。那么,到底什麼是Portal和Portlet呢?它又為什麼會成為一個熱門的Web技術套用呢?
按照JSR 168的Portlet 1.0規範定義,Portal是一種基於Web的套用,通常提供了個性化、單點登錄、不同來源的內容聚合等功能,並且作為信息系統表現層的宿主。聚合是將不同來源的內容整合到一個Web頁面中的操作。Portal可以具備複雜完善的個性化屬性以便為用戶提供定製的內容。Portal頁面還可以含有不同的Portlet來為不同的用戶創建內容。
Portlet是一種基於Web組件的Java技術,由Portlet容器管理。Portlet容器處理各種請求並動態地生成內容。Portal頁面使用Portlet作為可插拔的用戶接口組件,來為信息系統提供表現層。
IBM WebSphere Portal就是這樣一個能讓用戶插入新功能或擴展的框架。
IBM WebSphere Portal作為一個成熟的框架,包括運行時伺服器、服務、工具和許多其他特性。這種可擴展框架允許最終用戶與企業應用程式、人員、內容和流程互動。他們可以個性化組織他們自己的入口網站視圖、管理他們自己的概要檔案並發布和共享文檔。門戶將各種來源的組件、應用程式、流程和內容組合到統一的表示界面中,客戶可以從多種終端設備訪問此表示界面。IBM WebSphere Portal提供了附加的服務,如單點登錄、安全性、內容管理、搜尋和分類學(taxonomy)、對移動設備的支持,以及站點分析等。總之,IBM WebSphere Portal可以幫助企業根據用戶或工作角色、安全需要、設備設定、個人首選項和管理設定來自定義門戶,並可定義工作流以支持業務流程。
由此可見,在IBM WebSphere Portal將工作環境綁定到一個內聚界面中的同時,它還提供服務來增強用戶的體驗,以便該統一界面比使用各個組件時的界面更加豐富。IBM WebSphere Portal通過幫助企業擁有這樣一個全面的、可管理的工作環境來降低總體成本,並為企業業務帶來競爭優勢。
Portal套用開發最終將體現在代碼編寫上,而這就不可避免地遇到設計模式的問題。在設計開發中採用合適的設計模式,不僅可以更好地完成Portal套用所要達到的目的,而且可以大大提高Portal套用在實際環境中的表現,比如可擴展性、魯棒性、可用性,等等。因此,理解並恰當地在Portal套用開發中使用設計模式就成為本書所要解決的主要問題。
目的
市面上關於設計模式的書籍不在少數,其中也不乏經典之作。作者剛開始學習設計模式時,一直苦於沒有一本淺顯生動,快速上手的參考書。所讀的書籍大多從理論出發,雖然嚴謹,但是死板,讓初學者有敬而生畏的感覺。本書將從另外一個視角,通過描述中國古代四大名著之一的《西遊記》中眾多耳熟能詳的小故事,以借喻的手法來闡釋各種設計模式的精髓。但本書的目的不單單在於深入淺出地闡述設計模式,更重要的是希望藉助設計模式,提高開發Portal應用程式的能力。從而達到“寓學於習”的目的,使我們的讀者在掌握設計模式的同時,了解Portal套用的開發,實現一箭雙鵰的效果。
金庸的武俠小說中,功夫是有套路的,即便是九陰真經、降龍十八掌,甚至葵花寶典之類的絕頂武功,也有秘笈以資效習。如果能練得一招半式,威力便不同凡響,比如福建林家。顯然,讀完了秘笈,並非立刻就是高手,還得要日夜苦練、琢磨體會,直到牢記於心,融會貫通。此時,便可以闖蕩江湖,打出名號了。而功夫練到極致,達到“無招勝有招”的境界,如風清揚般,便是不世出的武學泰鬥了。
同樣的,掌握設計模式並不是我們最終的目的,只有將設計模式靈活套用到實際的項目中,並產生真正的價值,才是我們學習設計模式的根本目的。也只有在實踐中不斷使用設計模式,總結經驗教訓,才能對設計模式有更深入、更透徹的理解,最後升華到“無招勝有招”的境界。
讀者群
本書是為軟體開發人員所寫的一本將設計模式運用於Portal套用開發中的參考手冊。
如果您是一位Portal套用開發人員,您將從本書中獲得Portal套用開發的經驗之談。讀完本書之後,您將對設計模式有更深的理解,並幫助您學會開發更易於復用、更健壯的Portal套用。
如果您是一位設計模式初學者,本書將帶您從一個新的角度來學習和理解設計模式,並通過大量實例演示,讓您在掌握設計模式的同時,學會Portal套用的開發。
如果您是一位架構師,您將從本書中了解如何基於Portal架構企業級的門戶框架,並藉助設計模式,使這種框架更富有生命力。
內容結構
本書藉助《西遊記》中眾多耳熟能詳的小故事,以借喻的手法來闡釋各種設計模式的精髓。並且,以IBM WebSphere Portal作為實際驗證和操作的平台,一步步指導用戶基於IBM WebSphere Portal開發功能豐富多樣的Portal套用,使讀者在熟悉IBM WebSphere Portal套用開發的同時,得以深入理解設計模式,並能舉一反三。本書提供了一個完整的具備基本功能的企業級協作套用的實例,各個設計模式在實例中均有體現,讀者可以通過該實例加深對設計模式套用的理解。
第1章,介紹作者寫作此書的初衷。
第2章,介紹設計模式的起源、發展、現狀和趨勢,幫助讀者對設計模式的來龍去脈有一個清晰的了解。
第3章,介紹JSR 168,即Java Portlet規範1.0,使讀者掌握Java Portlet開發的基本規則。
第4章,介紹IBM WebSphere Portal的基本概念和特點,包括Portal的起源、發展、現狀和趨勢,使讀者對IBM WebSphere Portal套用有一個基本的認識。讀者將從中學到IBM WebSphere Portal套用開發的基本流程和方法。
第5章,逐一闡述各個創建型模式,每個模式均獨立成節。每節都以《西遊記》中的一個小故事開始,以借喻類比的手法,解析該設計模式的含義。之後,從軟體開發的角度,深入闡述各個模式的特點和用法,輔之以UML描述圖和典型示例代碼,幫助讀者理解該模式的套用場景和使用方法。最後,描述該設計模式在本書所提供的實例中的具體套用。
第6章和第7章分別闡述結構型模式和行為型模式,組織結構與第5章相同。
其中,王立編寫第1、3、5章,鄭長慶編寫第4、7章,陳喜倫編寫第2、6章,閆志東編程調試了本書所附完整Portal實例的原始碼。此外,王立和閆志東負責撰寫了書中“尋例西遊”部分。
附錄A、B提供了Portlet 1.0規範中的標記片斷和用戶信息屬性名的相關詳細信息。
附錄C提供了設計模式名的中英文速查表。
參考文獻列出了本書所引用的全部參考資料,讀者可據此做進一步的學習。
致謝
感謝我的妻子閆焱女士,無論成功失敗、順境逆境,她都在我身後給予堅定的支持和鼓勵。感謝我的父母,祝願他們生活更加幸福。感謝我的岳父岳母,在我攻讀博士期間給予的生活上的關心和照顧。感謝與我共同完成此書的鄭長慶、陳喜倫和閆志東三位同事,他們都是IBM的精英,能與他們合作,是我的幸事。
——王立
感謝父母不辭辛苦,對我一直以來的培養和照顧,祝他們在以後生活中健康,幸福。感謝我的女友何貞女士在著書期間給予我的支持、鼓勵和寶貴的參考意見。感謝王立、陳喜倫和閆志東三位同事,非常慶幸能與這些IBM優秀人才共同合作完成此書。
——鄭長慶
感謝我的父母對我的培養,十幾年來一直在外地求學和工作,他們對我的關心、鼓勵和教誨是我學習和工作的最大動力,祝願他們身體一直安康。感謝我正在讀博士的女友張雲,專心於學術研究的她不辭辛苦,在我著書期間給了我很大的支持和鼓勵。感謝王立、鄭長慶和閆志東三位優秀的IBM同事,從他們身上我學到了很多寶貴的知識。
——陳喜倫
感謝父母對我的培養和教育,無論成功還是失敗,他們都會給予安慰和支持,祝願他們身體健康,在以後的生活中幸福、快樂。感謝我的同事王立、鄭長慶和陳喜倫,能夠和他們一起共著此書,我感到十分快樂。
——閆志東
感謝IBM中國系統與技術中心的謝覺、于海波、徐明輝、Hilda Wu、Hao Tran和中國開發中心的閻小兵等同事在本書寫作過程中給予我們的關注和支持。感謝《Java與模式》一書的作者閻宏博士給予我們的理解和支持。
由於時間倉促,加之作者水平有限,書中難免有不妥之處,敬請讀者不吝指正。
目錄
第1章 序 1
1.1 童年的記憶 1
1.2 成長的煩惱 2
1.3 第三隻眼看設計模式 2
1.4 門戶——新的體驗 3
第2章 設計模式概論 5
2.1 設計模式簡介 5
2.2 學習設計模式的意義 6
2.2.1 復用解決方案 6
2.2.2 確立通用術語 6
2.2.3 提高面向對象設計的水平 6
2.2.4 提高軟體的可復用性 7
2.3 設計模式的要素和分類 7
2.3.1 設計模式的基本要素 7
2.3.2 設計模式的分類 8
2.4 設計模式和面向對象的設計原則 9
2.4.1 單一職責原則(SRP) 10
2.4.2 開放封閉原則(OCP) 10
2.4.3 Liskov替換原則(LSP) 11
2.4.4 依賴倒置原則(DIP) 12
2.4.5 接口隔離原則(ISP) 12
2.5 選擇和使用設計模式 12
2.5.1 從重構到模式 13
2.5.2 靈活實現設計模式 14
2.5.3 避免過度設計 15
第3章 Java Portlet規範 16
3.1 概述 16
3.1.1 基本術語 16
3.1.2 與Servlet的關係 17
3.1.3 Portal頁面 18
3.2 Portlet接口 19
3.2.1 Portlet生命周期 19
3.3 PortletConfig 23
3.4 Portlet URLs 24
3.5 Portlet模式 25
3.5.1 VIEW Portlet模式 26
3.5.2 EDIT Portlet模式 26
3.5.3 HELP Portlet模式 26
3.5.4 定製Portlet模式 26
3.5.5 GenericPortlet Render處理 30
3.5.6 定義Portlet模式支持 30
3.6 視窗狀態 31
3.6.1 NORMAL視窗狀態 31
3.6.2 MAXIMIZED視窗狀態 31
3.6.3 MINIMIZED視窗狀態 31
3.6.4 自定義視窗狀態 31
3.7 Portlet上下文 32
3.7.1 Portlet上下文的域 32
3.7.2 Portlet上下文的功能 32
3.7.3 和Servlet上下文的關係 32
3.8 Portlet Request 33
3.8.1 PortletRequest接口 33
3.8.2 ActionRequest接口 35
3.8.3 RenderRequest接口 36
3.8.4 Request對象的生命周期 36
3.9 Portlet Responses 36
3.9.1 PortletResponse接口 36
3.9.2 ActionResponse接口 37
3.9.3 RenderResponse接口 38
3.9.4 Response對象的生命周期 39
3.10 Portal上下文 39
3.11 Portlet優選參數(Portlet Preference) 39
3.11.1 PortletPreferences接口 40
3.11.2 優選屬性的域 40
3.11.3 優選屬性定義 41
3.11.4 驗證preference值 42
3.12 Sessions 42
3.12.1 創建session 43
3.12.2 session域 43
3.12.3 將屬性和session綁定 43
3.12.4 和Web套用HttpSession的關係 44
3.12.5 保留的HttpSession屬性名 45
3.12.6 Session逾時設定(Timeouts) 45
3.12.7 最後訪問時間(Last Accessed Times) 45
3.12.8 重要的session語義(semantics) 45
3.13 向Servlet和JSP分派請求 45
3.13.1 獲取PortletRequestDispatcher 45
3.13.2 使用Request Dispatcher 46
3.13.3 include方法 46
3.14 用戶信息 48
3.14.1 定義用戶屬性 48
3.14.2 訪問用戶屬性 49
3.14.3 用戶信息的重要注意事項 50
3.15 快取(Caching) 50
3.15.1 過期快取 50
3.16 Portlet套用 51
3.16.1 和Web套用的關係 51
3.16.2 和PortletContext的關係 51
3.16.3 Portlet套用的元素 51
3.16.4 目錄結構 51
3.16.5 Portlet套用類載入器 51
3.16.6 Portlet套用存檔檔案(Portlet Application Archive File) 52
3.16.7 Portlet套用部署描述符 52
3.16.8 替換Portlet套用 52
3.16.9 錯誤處理 52
3.16.10 Portlet套用環境 52
3.17 安全 52
3.17.1 導言 52
3.17.2 角色 53
3.17.3 編碼安全 53
3.17.4 安全約束 54
3.17.5 在EJB調用中傳播安全身份(Security Identity) 55
3.18 打包和部署描述符 55
3.18.1 Portlet和Web套用部署描述符 55
3.18.2 打包 56
3.18.3 Portlet部署描述符元素 56
3.18.4 處理Portlet部署描述符的規則 57
3.18.5 部署描述符 57
3.18.6 部署描述符結構圖 71
3.18.7 部署描述符值的唯一性 73
3.18.8 本地化 74
3.18.9 部署描述符實例 74
3.18.10 資源綁定(Resources Bundles) 76
3.18.11 資源綁定實例 77
3.19 Portlet標籤庫 77
3.19.1 defineObjects標籤 77
3.19.2 actionURL標籤 78
3.19.3 renderURL標籤 79
3.19.4 namespace標籤 80
3.19.5 param標籤 81
3.20 技術兼容性工具包(Technology Compatibility Kit)需求 81
3.20.1 TCK測試組件 81
3.20.2 TCK需求 82
第4章 IBM WebSphere Portal 87
4.1 WebSphere平台 87
4.2 WebSphere Portal邏輯結構 88
4.3 WebSphere Portal核心配置 89
4.4 WebSphere Portal安裝與配置 90
4.5 WebSphere Portal內容管理 91
4.6 WebSphere Portal安全 92
4.6.1 用戶管理認證與WMM 93
4.6.2 許可權控制 93
4.6.3 單點登錄 98
4.7 虛擬門戶(Virtual Portal) 99
4.8 組合應用程式 101
4.9 搜尋 102
4.10 Web剪下 102
4.11 協作與Lotus Domino集成 103
4.12 WebSphere Portal管理 105
4.12.1 管理Portlet 105
4.12.2 XML配置界面 107
4.12.3 Portal腳本接口 110
4.13 IBM WebSphere Portal開發簡介 112
4.14 本書所附示例代碼說明 125
4.14.1 示例程式簡介 125
4.14.2 代碼結構 131
4.14.3 所需環境 131
4.14.4 安裝配置 131
第5章 創建型模式 134
5.1 基單例模式(Singleton Pattern) 134
5.1.1 概述 134
5.1.2 尋例西遊 138
5.1.3 典型套用 139
5.1.4 Portal套用 140
5.1.5 IBM小故事-IBM Systems Servers 142
5.2 工廠方法模式(Factory Method) 144
5.2.1 概述 144
5.2.2 簡單工廠模式的典型套用 145
5.2.3 工廠方法模式概述 148
5.2.4 尋例西遊 150
5.2.5 工廠方法模式的典型套用 150
5.2.6 Portal套用 154
5.2.7 IBM小故事-IBM羅徹斯特實驗室(Rochester Lab) 158
5.3 抽象工廠模式(Abstract Factory) 159
5.3.1 概述 159
5.3.2 尋例西遊 162
5.3.3 典型套用 162
5.3.4 與工廠方法模式的比較 168
5.3.5 IBM小故事-IBM創始人 169
5.4 建造者模式(Builder Pattern) 169
5.4.1 概述 169
5.4.2 尋例西遊 172
5.4.3 典型套用 172
5.4.4 Portal套用 177
5.4.5 IBM小故事–LOGO演變 179
5.5 原型模式(Prototype Pattern) 181
5.5.1 概述 181
5.5.2 尋例西遊 183
5.5.3 典型套用 183
5.5.4 Portal套用 186
5.5.5 IBM小故事-人機大戰“深藍”戰勝象棋世界冠軍 187
5.6 小結 188
第6章 結構型模式 189
6.1 適配器模式(Adapter Pattern) 189
6.1.1 概述 189
6.1.2 尋例西遊 191
6.1.3 典型套用 191
6.1.4 Portal套用 194
6.1.5 小結 197
6.1.6 IBM小故事:IBM在中國 198
6.2 橋接模式(Bridge Pattern) 199
6.2.1 概述 199
6.2.2 尋例西遊 200
6.2.3 典型套用 200
6.2.4 Portal套用 207
6.2.5 小結 210
6.2.6 IBM小故事-IBM中國開發中心 210
6.3 組合模式(Composite Pattern) 211
6.3.1 概述 211
6.3.2 尋例西遊 213
6.3.3 典型套用 213
6.3.4 Portal套用 221
6.3.5 小結 225
6.3.6 IBM小故事-IBM中國研究院 225
6.4 裝飾模式(Decorator Pattern) 226
6.4.1 概述 226
6.4.2 尋例西遊 227
6.4.3 典型套用 228
6.4.4 Portal套用 232
6.4.5 小結 233
6.4.6 IBM小故事-IBM中國系統中心 234
6.5 外觀模式(Facade Pattern) 235
6.5.1 概述 235
6.5.2 尋例西遊 236
6.5.3 典型套用 236
6.5.4 Portal套用 248
6.5.5 小結 254
6.5.6 IBM小故事-IBM Music 255
6.6 享元模式(Flyweight Pattern) 256
6.6.1 概述 256
6.6.2 尋例西遊 257
6.6.3 典型套用 258
6.6.4 Portal套用 263
6.6.5 小結 263
6.6.6 IBM小故事-IBM員工著裝 264
6.7 代理模式(Proxy Pattern) 265
6.7.1 概述 265
6.7.2 尋例西遊 266
6.7.3 典型套用 266
6.7.4 Portal套用 269
6.7.5 小結 271
6.7.6 IBM小故事-ThinkPad 簡史 272
6.8 小結 273
第7章 行為模式 274
7.1 責任鏈模式(Responsibility Chain) 274
7.1.1 概述 274
7.1.2 尋例西遊 275
7.1.3 典型套用 276
7.1.4 Portal套用 279
7.1.5 小結 281
7.1.6 IBM小故事-IBM和阿波羅登月計畫 282
7.2 模板方法模式(Template Method) 283
7.2.1 概述 283
7.2.2 尋例西遊 284
7.2.3 典型套用 285
7.2.4 Portal套用 287
7.2.5 小結 289
7.2.6 IBM小故事 – 探測火星 289
7.3 疊代器模式(Iterator) 290
7.3.1 概述 290
7.3.2 尋例西遊 291
7.3.3 典型套用 292
7.3.4 Portal套用 296
7.3.5 小結 296
7.3.6 IBM小故事 – IBM掀開個人電腦新紀元 296
7.4 觀察者模式(Observer) 297
7.4.1 概述 297
5.1.2 尋例西遊 298
7.4.3 典型套用 298
7.4.4 Portal套用 302
7.4.5 小結 306
7.4.6 IBM小故事-IBM軟體助力太空研究 306
7.5 中介者模式(Mediator) 307
7.5.1 概述 307
7.5.2 尋例西遊 309
7.5.3 典型套用 309
7.5.4 Portal套用 314
7.5.5 小結 317
7.5.6 IBM小故事-IBM將摩爾定律推進到三維時代 317
7.6 備忘錄模式(Memento) 318
7.6.1 概述 318
7.6.2 尋例西遊 319
7.6.3 典型套用 319
7.6.4 Portal套用 322
7.6.5 小結 324
7.6.6 IBM小故事 – IBM和悉尼奧運會 324
7.7 命令模式(Command) 325
7.7.1 概述 325
7.7.2 尋例西遊 326
7.7.3 典型套用 326
7.7.4 Portal套用 335
7.7.5 小結 336
7.7.6 IBM小故事–IBM全球總部 337
7.8 狀態模式(State) 338
7.8.1 概述 338
7.8.2 尋例西遊 339
7.8.3 典型套用 339
7.8.4 Portal套用 342
7.8.5 小結 346
7.8.6 IBM小故事 – IBM Plant No.1 346
7.9 策略模式(Strategy) 347
7.9.1 概述 347
7.9.2 尋例西遊 348
7.9.3 典型實例 349
7.9.4 Portal套用 353
7.9.5 小結 356
7.9.6 IBM小故事-路易斯·郭士納 356
7.10 解釋器模式(Interpreter) 357
7.10.1 概述 357
7.10.2 尋例西遊 358
7.10.3 典型套用 359
7.10.4 Portal套用 362
7.10.5 小結 363
7.10.6 IBM小故事-IBM PC之父 363
7.11 訪問者模式(Visitor) 364
7.11.1 概述 364
7.11.2 尋例西遊 365
7.11.3 典型套用 366
7.11.4 Portal套用 370
7.11.5 小結 376
7.11.6 IBM小故事-圖靈獎40年來首次授予女性 376
7.12 小結 377
附錄A 標記片段(Markup Fragment) 378
附錄B 用戶信息屬性名(User Information Attribute Names) 379
附錄C 設計模式中英文名對照速查表 382
參考文獻 383