XDE中情势驱动的筹划与开辟(三)[Java编程]
本文“XDE中情势驱动的筹划与开辟(三)[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
第三部份:XDE中情势的高级话题
在前面的部份中,我们具体介绍了XDE的利用办法,但是XDE中关于情势的概念有很多,有一些很直接,而有一些却对比的隐讳.这一部份的内容,将对XDE中的一些高级概念作初步的阐释,并给出了一些小的例子.但愿可以帮忙大家更在对XDE本身,以及XDE所倡导的情势驱动的开辟办法有更多,更为深化地理解.假如没有看过前几期的读者,还是最好找来看看,直接看着一期的内容,理解起来大概会有一些艰难.
1.代码模版(Code Template)
情势,大概说计划情势,很大程度上是对对象构造上的描写.也就是说,情势终究的实现以及生成的代码,也大大都是属于框架性质的--只有类,属性大概办法的定义,类之间的引用,担当等等之类的代码,而关于具体的办法中的代码,它常常无能为力.这也是大大都正向工程工具都欠缺的一个部份.
实际上,假如只是一些简单的语义,比方对象的成立,固定办法的调用而没有触及复杂的交互的,我们也是可以从模子的语义中生成具体的代码.在XDE中,通过代码模版,来完成一些简单办法的参数化的代码生成.
好像情势一样,代码模版也是可以拥有参数并在具体生成的时刻举行替换绑定的.在代码模版中,可以利用两种范例的参数:strings和model elements.
Strings:简单的字符串,在代码生成的时刻XDE会用具体的字符串来替换全部的这些字符串参数.
Model elements:一个模子元素.XDE中供应了一个简单的编程模子,可以通过对模子元素API的调用(比方得到一个类的全部公有办法)来完成给位复杂的代码定制.和情势接洽在一同的时刻,Model Elements范例的参数可以是情势中的一个模版参数,在情势展开的时刻,会用具体的模版参数值来替换这个代码模版中参数.
XDE代码模版的情势很像Jsp大概Asp中利用的情势.你假如对Jsp的机制很理解的话,那么你也可以很简单的理解代码模版的机制了.
在一个代码模版中,代码被分为两个部份,一部份是直接输出的,不经过任何的处理.别的一个部份是在<%和%>这两个标号之间的脚本内容,通过对参数大概别的元素的处理之后再举行输出.假如Jsp或Asp一样,它也是用简单的<%=var%>来举行变量的输出(var是一个变量).全部<%和%>之间的内容,是利用脚本语言来编写的.目前XDE中的代码模版只支持Javascript语言.
下面的一个代码模版的例子选自XDE的在线文档,用以在调试的时刻打印对象的当前状况.每一个利用了这个代码模版的办法,将会在调用办法前在掌握台输出对象的状况,供调试利用.
<%
// assume: myClass is "this" Class with debug operation
function debugStatements(myClass) {
var attributeCollection = myClass.GetAttributeCollection();
var attributeCollection1= Interfaces.queryInterface(attributeCollection, "com.rational.rms.IRMSElementCollection");
var attributeCount = attributeCollection.getCount();
debugStatements = "";
for (i=1; i<=attributeCount; i++) {
var rmsAttribute = attributeCollection1.GetElementAt(i);
var attrName = rmsAttribute.getName();
%>
System.out.println( "<%=attrName%>" );
<%
}
}
//assume: myOperation is debug operation
function debugOperation(myOperation) {
var thisOperation = Interfaces.queryInterface(myOperation, "com.rational.uml70.IUMLOperation");
var thisClass = thisOperation.GetContainer();
var myClass = Interfaces.queryInterface(thisClass, "com.rational.uml70.IUMLClass");
debugStatements(myClass);
}
var myOperation = Interfaces.queryInterface(thisElement, "com.rational.uml70.IUMLOperation");
debugOperation(myOperation);
// end
%>
在上面的代码模版中,定义了两个办法debugStatements和debugOperation,debugOperation承受当前元素作为参数,并由其得到debugStatements的参数--一个包含了这个办法的对象,并在debugStatements中输出:System.out.println( "<%=attrName%>" );
以上是“XDE中情势驱动的筹划与开辟(三)[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |