English  
     
 

 

主页   新闻   白皮书   文档   出版物   下载   源码   方案   资质
 
 
  主页 | 培训    
 

Fuxi语言的类型与风格

  如何让我们所设计的类或对象能够方便地共享已有的类或对象,简化程序设计?继承和风格化就是两项重要的程序共享技术。继承(inheritance)是面向对象技术的三个基本支柱之一,已经为人们所熟知;而风格化(stylization)则新近才出现。

  所谓对象的风格,指对象在执行过程中表现的姿态,例如,是否拥有自己独立的线程、是否具有持续性、是否可以在网上移动等;而对象的类型,则指对象的结构和行为,对象类型通常是类。

  从程序设计角度来看,风格化是通过某种标注(annotation)对对象进行动态修饰(Dynamical qualification),使其在执行时具有某种风格;而继承则是类型的定义方法,是对类型所进行的静态规定(static specification)。

  从实现技术来看,风格化是特征的垂直叠加(vertical cascading),而继承则是特征的水平排列(horizontal alignment)。因此,风格和类型具有正交性。

  我们可以把对象的风格想象成产品的颜色,产品的设计师通常关注产品结构本身的设计,而忽略对颜色的考虑。然而,当产品成型后,工人可以为产品着上各种不同的颜色。

图1.实例的三维空间

     
  class A { … }

active A a_act           // 主动式对象a_act
mobile A a_mob           // 可移动对象a_mob
persistent A a_per       // 持续性对象a_per
remote A a_rem          // 远程对象a_rem
@WebSecurity A a_web     // 自定义风格对象

 
     

图2. 对象风格的使用

  Fuxi语言目前支持一下系统风格:active, mobile, persistent和remote;用户也可以使用自定义风格。例如,我们定义了类A后,可以定义几种不同风格的对象,如图2所示。这5个对象都具有相同的类型,具有相同的调用接口。在程序设计过程中,程序员可以完全不必对这5个姿态不同的对象进行特殊的考虑。因为,对象风格只是在执行时才表现出来。

  风格和类型的正交分离,具有明显的技术优势。

  首先,它可以使程序变得简洁。让程序员只关注类结构本身的设计,关注问题的本身,而忽略对同问题方案正交的某些技术侧面的考虑。

  其次,避开程序对底层平台(Infrastructure)的直接调用,使得程序具有平台无关性,便于程序的部署和网络计算的实现。

  第三,使得系统各装配件具有可动态替换性。例如,例子中对WebSecurity 风格的实现就可以根据不同的安全策略,选择不同的装配件。
 

 
   
   
 

友情链接:深圳市触品科技有限公司 www.touchbuy.cn

友情链接:深圳市趋高智能系统有限公司 www.hitrend.com

友情链接:深圳市触品便利店有限公司 www.touchstore.cn

关于我们  联系我们  加入我们

©2006-2019 fuxi.org, 版权所有. 粤ICP备11003046号