如何从组件开始构建一座城市?

  英文原文:How Would You Build Up a City from Components?

  为什么越来越多的企业应用开发正在转向组件框架和解决方案?组件架构是否有前途?我相信答案是肯定的,而且很快所有开发框架都将会是基于组件的——这是近在眼前的事情。下面让我来向你揭示这一切的原因。

  你怎么来建设你的房子?一般你会从砌块开始。我们可以将构建Web应用与构建你的乡间小屋进行对比。你能够快速构建一个非常好看的应用,而且它具有所有必需的功能。同样,在你的房子里面,每一间房间都是针对具体的需求来创建的,例如厨房、起居室、卧室或浴室。房子的布局使你能够通过走廊和楼梯很方便地在房间之间移动

  现在你能够做得更好,而且能够承担建设一座更大更好的房子的投入——你也许希望拥有桑拿房、游泳池、影院以及一座满是爬行动物的巨大的水族馆☺。但要想改变房子的设计却是件非常困难的事情。若要添加额外的设施,房子最终看起来也许就不那么漂亮了。此外,由于你添加的这些设施必须放在不太方便的位置,它们也会影响房子使用的便利性,例如你必须穿过主卧室才能进入台球室。

  最后,你那漂亮又整洁的房子将拥有一堆不同的功能,但它会变得笨拙又不舒适。同样的道理也适用于应用开发。

  问题是,有没有可能设计一款应用,能够根据你的需求成长和改变?

  组件是应用的积木式构件

   组件是扩展应用功能的首要方法。创建组件的过程,与基于组件创建应用的过程<a name="_GoBack">有一些差异。组件不止应该提供有用的功能,还应该从一开始就设计成可复用的。

  组件复用

  组件应该采用松耦合方式设计以便于复用。为实现这一目标,不同的框架往往基于观察者模式实现其事件模型。该模式允许多个接收者订阅同一事件。

  观察者模式的实现最早出现在Smalltalk中。Smalltalk是一个基于MVC的用户界面框架,现在它已经成为MVC框架的关键部分。我希望你能注意到,自Java 1.0版本起,观察者模式就已经在Java中存在。下面让我们深入了解它。

  下面的UML图展现了观察者模式:

  以下则是一段基本的Java实现:

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知识库如何从组件开始构建一座城市?,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。