|
英文原文:How Would You Build Up a City from Components?
為什么越來越多的企業(yè)應(yīng)用開發(fā)正在轉(zhuǎn)向組件框架和解決方案?組件架構(gòu)是否有前途?我相信答案是肯定的,而且很快所有開發(fā)框架都將會是基于組件的——這是近在眼前的事情。下面讓我來向你揭示這一切的原因。
你怎么來建設(shè)你的房子?一般你會從砌塊開始。我們可以將構(gòu)建Web應(yīng)用與構(gòu)建你的鄉(xiāng)間小屋進行對比。你能夠快速構(gòu)建一個非常好看的應(yīng)用,而且它具有所有必需的功能。同樣,在你的房子里面,每一間房間都是針對具體的需求來創(chuàng)建的,例如廚房、起居室、臥室或浴室。房子的布局使你能夠通過走廊和樓梯很方便地在房間之間移動。
現(xiàn)在你能夠做得更好,而且能夠承擔建設(shè)一座更大更好的房子的投入——你也許希望擁有桑拿房、游泳池、影院以及一座滿是爬行動物的巨大的水族館?。但要想改變房子的設(shè)計卻是件非常困難的事情。若要添加額外的設(shè)施,房子最終看起來也許就不那么漂亮了。此外,由于你添加的這些設(shè)施必須放在不太方便的位置,它們也會影響房子使用的便利性,例如你必須穿過主臥室才能進入臺球室。
最后,你那漂亮又整潔的房子將擁有一堆不同的功能,但它會變得笨拙又不舒適。同樣的道理也適用于應(yīng)用開發(fā)。
問題是,有沒有可能設(shè)計一款應(yīng)用,能夠根據(jù)你的需求成長和改變?
組件是應(yīng)用的積木式構(gòu)件
組件是擴展應(yīng)用功能的首要方法。創(chuàng)建組件的過程,與基于組件創(chuàng)建應(yīng)用的過程<a name="_GoBack">有一些差異。組件不止應(yīng)該提供有用的功能,還應(yīng)該從一開始就設(shè)計成可復(fù)用的。
組件復(fù)用
組件應(yīng)該采用松耦合方式設(shè)計以便于復(fù)用。為實現(xiàn)這一目標,不同的框架往往基于觀察者模式實現(xiàn)其事件模型。該模式允許多個接收者訂閱同一事件。
觀察者模式的實現(xiàn)最早出現(xiàn)在Smalltalk中。Smalltalk是一個基于MVC的用戶界面框架,現(xiàn)在它已經(jīng)成為MVC框架的關(guān)鍵部分。我希望你能注意到,自Java 1.0版本起,觀察者模式就已經(jīng)在Java中存在。下面讓我們深入了解它。
下面的UML圖展現(xiàn)了觀察者模式:
以下則是一段基本的Java實現(xiàn):
public class ObservableX extends Observable { ... public void setAmount(double amount) { this.amount = amount; super.setChanged(); super.notifyObservers();}} public class ObserverA implements Observer { public void public void update(Observable o) { // gets updated amount}} public class ObserverB implements Observer { public void public void update(Observable o) { // gets updated amount}}//instantiate concrete observableXObservableX observableX = new ObservableX();//somewhere in codeobservableX.addObserver(new ObserverA());observableX.addObserver(new ObserverB());//much laterobservableX.setAmount(amount);
it知識庫:如何從組件開始構(gòu)建一座城市?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。