国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

外觀模式(Fa?ade pattern)(1)

2019-11-18 13:42:47
字體:
來源:轉載
供稿:網友

描述

外觀模式(Façade pattern)涉及到子系統的一些類。所謂子系統,是為提供一系列相關的特征(功能)而緊密關聯的一組類。例如,一個Account類、Address類和CreditCard類相互關聯,成為子系統的一部分,提供在線客戶的特征。

在真實的應用系統中,一個子系統可能由很多類組成。子系統的客戶為了它們的需要,需要和子系統中的一些類進行交互。客戶和子系統的類進行直接的交互會導致客戶端對象和子系統之間高度耦合。任何的類似于對子系統中類的接口的修改,會對依靠于它的所有的客戶類造成影響。

外觀模式(Façade pattern)很適用于在上述情況。外觀模式(Façade pattern)為子系統提供了一個更高層次、更簡單的接口,從而降低了子系統的復雜度和依靠。這使得子系統更易于使用和治理。

外觀是一個能為子系統和客戶提供簡單接口的類。當正確的應用外觀,客戶不再直接和子系統中的類交互,而是與外觀交互。外觀承擔與子系統中類交互的責任。實際上,外觀是子系統與客戶的接口,這樣外觀模式降低了子系統和客戶的耦合度。

我們可以看到:外觀對象隔離了客戶和子系統對象,從而降低了耦合度。當子系統中的類進行改變時,客戶端不會像以前一樣受到影響。

盡管客戶使用由外觀提供的簡單接口,但是當需要的時候,客戶端還是可以視外觀不存在,直接訪問子系統中的底層次的接口。這種情況下,它們之間的依靠/耦合度和原來一樣。

例子:

讓我們建立一個應用:

(1)    接受客戶的具體資料(賬戶、地址和信用卡信息)

(2)    驗證輸入的信息

(3)    保存輸入的信息到相應的文件中。

這個應用有三個類:Account、Address和CreditCard。每一個類都有自己的驗證和保存數據的方法。

Listing 22.1: AccountClass 

  1. public class Account { 
  2.   String firstName; 
  3.   String lastName; 
  4.   final String ACCOUNT_DATA_FILE = "AccountData.txt"; 
  5.   public Account(String fname, String lname) { 
  6.     firstName = fname; 
  7.     lastName = lname; 
  8.   } 
  9.   public boolean isValid() { 
  10.     /* 
  11.      Let's go with simpler validation 
  12.      here to keep the example simpler. 
  13.     */ 
  14.         … 
  15.         … 
  16.   } 
  17.   public boolean save() { 
  18.     FileUtil futil = new FileUtil(); 
  19.     String dataLine = getLastName() + ”," + getFirstName(); 
  20.     return futil.writeToFile(ACCOUNT_DATA_FILE, dataLine, 
  21.     truetrue); 
  22.   } 
  23.   public String getFirstName() { 
  24.     return firstName; 
  25.   } 
  26.   public String getLastName() { 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 花垣县| 唐海县| 沁源县| 根河市| 马山县| 博罗县| 方正县| 壤塘县| 咸丰县| 元氏县| 宁化县| 榆林市| 军事| 庆元县| 东宁县| 上饶市| 灌南县| 长兴县| 南汇区| 准格尔旗| 米易县| 麻栗坡县| 穆棱市| 都江堰市| 司法| 时尚| 高密市| 余庆县| 黔西| 沙田区| 汾阳市| 五河县| 辉县市| 邳州市| 南靖县| 陇南市| 高安市| 沽源县| 隆回县| 尉犁县| 涟水县|