Ò»¡¢Ê²Ã´ÊǽӿÚ
½Ó¿ÚÊÇÃæÏò¶ÔÏóJavaScript³ÌÐòÔ±µÄ¹¤¾ßÏäÖÐ×îÓÐÓõŤ¾ßÖ®Ò»¡£ÔÚÉè¼ÆÄ£Ê½ÖÐÌá³öµÄ¿ÉÖØÓõÄÃæÏò¶ÔÏóÉè¼ÆµÄÔÔòÖ®Ò»¾ÍÊÇ¡°Õë¶Ô½Ó¿Ú±à³Ì¶ø²»ÊÇʵÏÖ±à³Ì¡±£¬¼´ÎÒÃÇËù˵µÄÃæÏò½Ó¿Ú±à³Ì£¬Õâ¸ö¸ÅÄîµÄÖØÒªÐԿɼûÒ»°ß¡£µ«ÎÊÌâÔÚÓÚ£¬ÔÚJavaScriptµÄÊÀ½çÖУ¬Ã»ÓÐÄÚÖõĴ´½¨»òʵÏֽӿڵķ½·¨£¬Ò²Ã»ÓпÉÒÔÅжÏÒ»¸ö¶ÔÏóÊÇ·ñʵÏÖÁËÓëÁíÒ»¸ö¶ÔÏóÏàͬµÄÒ»Ì×·½·¨£¬ÕâʹµÃ¶ÔÏóÖ®¼äºÜÄÑ»¥»»Ê¹Ó㬺ÃÔÚJavaScriptÓµÓгöÉ«µÄÁé»îÐÔ£¬ÕâʹµÃÄ£Äâ´«Í³ÃæÏò¶ÔÏóµÄ½Ó¿Ú£¬Ìí¼ÓÕâÐ©ÌØÐÔ²¢·ÇÄÑÊ¡£½Ó¿ÚÌṩÁËÒ»ÖÖÓÃÒÔ˵Ã÷Ò»¸ö¶ÔÏóÓ¦¸Ã¾ßÓÐÄÄЩ·½·¨µÄÊֶΣ¬¾¡¹ÜËü¿ÉÒÔ±íÃ÷ÕâЩ·½·¨µÄº¬Ò壬µ«ÊÇÈ´²»°üº¬¾ßÌåʵÏÖ¡£ÓÐÁËÕâ¸ö¹¤¾ß£¬¾ÍÄܰ´¶ÔÏóÌṩµÄÌØÐÔ¶ÔËüÃǽøÐзÖ×é¡£ÀýÈ磬¼ÙÈçAºÍBÒÔ¼°½Ó¿ÚI£¬¼´±ãA¶ÔÏóºÍB¶ÔÏóÓм«´óµÄ²îÒ죬ֻҪËûÃǶ¼ÊµÏÖÁËI½Ó¿Ú£¬ÄÇôÔÚA.I(B)·½·¨ÖоͿÉÒÔ»¥»»Ê¹ÓÃAºÍB£¬ÈçB.I(A)¡£»¹¿ÉÒÔʹÓýӿڿª·¢²»Í¬µÄÀàµÄ¹²Í¬ÐÔ¡£Èç¹û°ÑÔ±¾ÒªÇóÒÔÒ»¸öÌØ¶¨µÄÀàΪ²ÎÊýµÄº¯Êý¸ÄΪҪÇóÒÔÒ»¸öÌØ¶¨µÄ½Ó¿ÚΪ²ÎÊýµÄº¯Êý£¬ÄÇôËùÓÐʵÏÖÁ˸ýӿڵĶÔÏ󶼿ÉÒÔ×÷Ϊ²ÎÊý´«µÝ¸øËü£¬ÕâÑùÒ»À´£¬±Ë´Ë²»Ïà¹ØµÄ¶ÔÏóÒ²¿ÉÒÔ±»ÏàͬµØ¶Ô´ý¡£
¶þ¡¢½Ó¿ÚµÄÀûÓë±×
¼È¶¨µÄ½Ó¿Ú¾ßÓÐ×ÔÎÒÃèÊöÐÔ£¬²¢Äܹ»´Ù½ø´úÂëµÄÖØÓÃÐÔ£¬½Ó¿Ú¿ÉÒÔÌṩһÖÖÐÅÏ¢£¬¸æËßÍⲿһ¸öÀàÐèҪʵÏÖÄÄЩ·½·¨¡£»¹ÓÐÖúÓÚÎȶ¨²»Í¬ÀàÖ®¼äµÄͨÐÅ·½Ê½£¬¼õÉÙÁ˼̳ÐÁ½¸ö¶ÔÏóµÄ¹ý³ÌÖгöÏÖµÄÎÊÌâ¡£Õâ¶ÔÓÚµ÷ÊÔÒ²ÊÇÓаïÖúµÄ£¬ÔÚJavaScriptÕâÖÖÈõÀàÐÍÓïÑÔÖУ¬ÀàÐͲ»Æ¥ÅäºÜÄÑ×·×Ù£¬Ê¹ÓýӿÚʱ£¬Èç¹û³öÏÖÁËÎÊÌ⣬»áÓиüÃ÷È·µÄ´íÎóÌáʾÐÅÏ¢¡£µ±È»½Ó¿Ú²¢·ÇÍêȫûÓÐȱµã£¬Èç¹û´óÁ¿Ê¹ÓýӿڻáÒ»¶¨³Ì¶ÈÉÏÈõ»¯Æä×÷ΪÈõÀàÐÍÓïÑÔµÄÁé»îÐÔ£¬ÁíÒ»·½Ã棬JavaScript²¢Ã»ÓжԽӿڵÄÄÚÖõÄÖ§³Ö£¬Ö»ÊǶԴ«Í³µÄÃæÏò¶ÔÏóµÄ½Ó¿Ú½øÐÐÄ£Ä⣬Õâ»áʹ±¾Éí½ÏΪÁé»îµÄJavaScript±äµÃ¸ü¼ÓÄÑÒÔ¼ÝÔ¦¡£´ËÍ⣬ÈκÎʵÏֽӿڵķ½Ê½¶¼»á¶ÔÐÔÄÜÔì³ÉÓ°Ï죬ijÖ̶ֳÈÉϹé¾ÌÓÚ¶îÍâµÄ·½·¨µ÷ÓÿªÏú¡£½Ó¿ÚʹÓõÄ×î´óµÄÎÊÌâÔÚÓÚ£¬JavaScript²»ÏñÊÇÆäËûµÄÇ¿ÀàÐÍÓïÑÔ£¬Èç¹û²»×ñÊØ½Ó¿ÚµÄÔ¼¶¨£¬¾Í»á±àÒëʧ°Ü£¬ÆäÁé»îÐÔ¿ÉÒÔÓÐЧµØ±Ü¿ªÉÏÊöÎÊÌ⣬Èç¹ûÊÇÔÚÐͬ¿ª·¢µÄ»·¾³Ï£¬Æä½Ó¿ÚºÜÓпÉÄܱ»ÆÆ»µ¶ø²»»á²úÉúÈκδíÎó£¬Ò²¾ÍÊDz»¿É¿ØÐÔ¡£
ÔÚÃæÏò¶ÔÏóµÄÓïÑÔÖУ¬Ê¹Óýӿڵķ½Ê½´óÌåÏàËÆ¡£½Ó¿ÚÖаüº¬µÄÐÅϢ˵Ã÷ÁËÀàÐèҪʵÏֵķ½·¨ÒÔ¼°ÕâЩ·½·¨µÄÇ©Ãû¡£ÀàµÄ¶¨Ò屨ÐëÃ÷È·µØÉùÃ÷ËüÃÇʵÏÖÁËÕâЩ½Ó¿Ú£¬·ñÔòÊDz»»á±àÒëͨ¹ýµÄ¡£ÏÔÈ»ÔÚJavaScriptÖÐÎÒÃDz»ÄÜÈç·¨ÅÚÖÆ£¬ÒòΪ²»´æÔÚinterfaceºÍimplement¹Ø¼ü×Ö£¬Ò²²»»áÔÚÔËÐÐʱ¶Ô½Ó¿ÚÊÇ·ñ×ñÑÔ¼¶¨½øÐмì²é£¬µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ý¸¨Öú·½·¨ºÍÏÔʽµØ¼ì²éÄ£·Â³öÆä´ó²¿·ÖÌØÐÔ¡£
Èý¡¢ÔÚJavaScriptÖÐÄ£·Â½Ó¿Ú
ÔÚJavaScriptÖÐÄ£·Â½Ó¿ÚÖ÷ÒªÓÐÈýÖÖ·½Ê½£ºÍ¨¹ý×¢ÊÍ¡¢ÊôÐÔ¼ì²éºÍѼʽ±çÐÍ·¨£¬ÒÔÉÏÈýÖÖ·½Ê½ÓÐЧ½áºÏ£¬¾Í»á²úÉúÀàËÆ½Ó¿ÚµÄЧ¹û¡£
×¢ÊÍÊÇÒ»ÖֱȽÏÖ±¹ÛµØ°ÑÓë½Ó¿ÚÏà¹ØµÄ¹Ø¼ü×Ö(Èçinterface¡¢implementµÈ)ÓëJavaScript´úÂëһͬ·ÅÔÚ×¢ÊÍÖÐÀ´Ä£Äâ½Ó¿Ú£¬ÕâÊÇ×î¼òµ¥µÄ·½·¨£¬µ«ÊÇЧ¹û×î²î¡£´úÂëÈçÏ£º
//ÒÔ×¢Ê͵ÄÐÎʽģ·ÂÃèÊö½Ó¿Ú
/*
interface Composite{
function add(child);
function remove(child);
function getName(index);
}
interface FormItem{
function save();
}
*/
//ÒÔ×¢Ê͵ÄÐÎʽģ·ÂʹÓýӿڹؼü×Ö
var CompositeForm =function(id , method,action) { //implements Composite , FormItem
// do something
}
//Ä£ÄâʵÏÖ¾ßÌåµÄ½Ó¿Ú·½·¨ ´Ë´¦ÊµÏÖComposite½Ó¿Ú
CompositeForm.prototype.Add= function(){
// do something
}
CompositeForm.prototype.remove= function(){
// do something
}
CompositeForm.prototype.getName= function(){
// do something
}
//Ä£ÄâʵÏÖ¾ßÌåµÄ½Ó¿Ú·½·¨ ´Ë´¦ÊµÏÖFormItem½Ó¿Ú
Composite.prototype.save= function(){
// do something
} |
ÕâÖÖ·½Ê½Æäʵ²¢²»ÊǺܺã¬ÒòΪÕâÖÖÄ£·Â»¹Ö»Í£ÁôÔÚÎĵµ¹æ·¶µÄ·¶³ë£¬¿ª·¢ÈËÔ±ÊÇ·ñ»áÑϸñ×ñÊØ¸ÃÔ¼¶¨Óдý¿¼Á¿£¬¶Ô½Ó¿ÚµÄ×ñÊØÍêÈ«ÒÀ¿¿¿ª·¢ÈËÔ±µÄ×Ô¾õÐÔ¡£ÁíÍ⣬ÕâÖÖ·½Ê½²¢²»»áÈ¥¼ì²éij¸öº¯ÊýÊÇ·ñÕæÕýµØÊµÏÖÁËÎÒÃÇÔ¼¶¨µÄ¡°½Ó¿Ú¡±¡£¾¡¹ÜÈç´Ë£¬ÕâÖÖ·½Ê½Ò²ÓÐÓŵ㣬ËüÒ×ÓÚʵÏÖ¶ø²»ÐèÒª¶îÍâµÄÀà»òÕߺ¯Êý£¬¿ÉÒÔÌá¸ß´úÂëµÄ¿ÉÖØÓÃÐÔ£¬ÒòΪÀàʵÏֵĽӿڶ¼ÓÐ×¢ÊÍ˵Ã÷¡£ÕâÖÖ·½Ê½²»»áÓ°Ïìµ½ÎļþÕ¼ÓõĿռä»òÖ´ÐÐËÙ¶È£¬ÒòΪעÊ͵ĴúÂë¿ÉÒÔÔÚ²¿ÊðµÄʱºòÇáËÉÌÞ³ý¡£µ«ÊÇÓÉÓÚ²»»áÌṩ´íÎóÏûÏ¢£¬Ëü¶Ô²âÊԺ͵÷ÊÔûʲô°ïÖú¡£ÏÂÃæµÄÒ»ÖÖ·½Ê½»á¶ÔÊÇ·ñʵÏÖ½Ó¿Ú½øÐмì²é£¬´úÂëÈçÏ£º
//ÒÔ×¢Ê͵ÄÐÎʽģ·ÂʹÓýӿڹؼü×Ö
var CompositeForm =function(id , method,action) { //implements Composite , FormItem
// do something
this.implementsinterfaces=['Composite','FormItem']; //ÏÔʽµØ°Ñ½Ó¿Ú·ÅÔÚimplementsinterfacesÖÐ
}
//¼ì²é½Ó¿ÚÊÇ·ñʵÏÖ
function implements(Object){
for(var i=0 ;i< arguments.length;i++){
var interfaceName=arguments[i];
var interfaceFound=false;
for(var j=0;j< Object.implementsinterfaces.length; j++){
if(Object.implementsinterfaces[j] ==interfaceName){
interfaceFound=true;
break;
}
}
if(!interfaceFound){
return false;
}else{
return true;
}
}
}
function AddForm(formInstance){
if(!implements(formInstance, 'Composite','FormItem')){
throw new Error('Object does not implements required interface!');
}
} |
ÉÏÊö´úÂëÊÇÔÚ·½Ê½Ò»µÄ»ù´¡ÉϽøÐÐÍêÉÆ£¬ÔÚÕâ¸öÀý×ÓÖУ¬CompositeFormÐû³Æ×Ô¼ºÊµÏÖÁËCompositeºÍFormItemÕâÁ½¸ö½Ó¿Ú£¬Æä×ö·¨ÊǰÑÕâÁ½¸ö½Ó¿ÚµÄÃû³Æ¼ÓÈëÒ»¸öimplementsinterfacesµÄÊý×é¡£ÏÔʽµØÉùÃ÷×Ô¼ºÖ§³Öʲô½Ó¿Ú¡£ÈκÎÒ»¸öÒªÇóÆä²ÎÊýÊôÐÔÎªÌØ¶¨ÀàÐ͵ĺ¯Êý¶¼¿ÉÒÔ¶ÔÕâ¸öÊôÐÔ½øÐмì²é£¬²¢ÔÚËùÐèÒªµÄ½Ó¿ÚδÔÚÉùÃ÷Ö®ÖÐʱÅ׳ö´íÎó¡£ÕâÖÖ·½Ê½Ïà¶ÔÓÚÉÏÒ»ÖÖ·½Ê½£¬¶àÁËÒ»¸öÇ¿ÖÆÐÔµÄÀàÐͼì²é¡£µ«ÊÇÕâÖÖ·½·¨µÄȱµãÔÚÓÚËü²¢Î´±£Ö¤ÀàÕæÕýµØÊµÏÖÁË×Ô³ÆÊµÏֵĽӿڣ¬Ö»ÊÇÖªµÀËüÉùÃ÷×Ô¼ºÊµÏÖÁËÕâЩ½Ó¿Ú¡£ÆäʵÀàÊÇ·ñÉùÃ÷×Ô¼ºÖ§³ÖÄÄЩ½Ó¿Ú²¢²»ÖØÒª£¬Ö»ÒªËü¾ßÓÐÕâЩ½Ó¿ÚÖеķ½·¨¾ÍÐС£Ñ¼Ê½±çÐÍ(ÏñѼ×ÓÒ»Ñù×ß·²¢ÇҸ¸½еľÍÊÇѼ×Ó)ÕýÊÇ»ùÓÚÕâÑùµÄÈÏʶ£¬Ëü°Ñ¶ÔÏóʵÏֵķ½·¨¼¯×÷ΪÅжÏËüÊDz»ÊÇij¸öÀàµÄʵÀýµÄΨһ±ê×¼¡£ÕâÖÖ¼¼ÊõÔÚ¼ì²éÒ»¸öÀàÊÇ·ñʵÏÖÁËij¸ö½Ó¿ÚʱҲ¿ÉÒÔ´óÏÔÉíÊÖ¡£ÕâÖÖ·½·¨µÄ±³ºó¹ÛµãºÜ¼òµ¥£ºÈç¹û¶ÔÏó¾ßÓÐÓë½Ó¿Ú¶¨ÒåµÄ·½·¨Í¬ÃûµÄËùÓз½·¨£¬ÄÇô¾Í¿ÉÒÔÈÏΪËüʵÏÖÁËÕâ¸ö½Ó¿Ú¡£¿ÉÒÔʹÓÃÒ»¸ö¸¨Öúº¯ÊýÀ´È·±£¶ÔÏó¾ßÓÐËùÓбØÐèµÄ·½·¨£¬´úÂëÈçÏ£º
//interface
var Composite =new Interface( 'Composite',['add','remove','getName']);
var FormItem=new Interface( 'FormItem',['save']);
//class
var Composite=function(id,method,action){
}
//Common Method
function AddForm(formInstance){
ensureImplements(formInstance,Composite,FormItem);
//Èç¹û¸Ãº¯ÊýûÓÐʵÏÖÖ¸¶¨µÄ½Ó¿Ú£¬Õâ¸öº¯Êý½«»á±¨´í
} |
ÓëÁíÍâÁ½ÖÖ·½Ê½²»Í¬£¬ÕâÖÖ·½Ê½ÎÞÐè×¢ÊÍ£¬ÆäÓàµÄ¸÷¸ö·½Ãæ¶¼ÊÇ¿ÉÒÔÇ¿ÖÆÊµÊ©µÄ¡£EnsureImplementsº¯ÊýÐèÒªÖÁÉÙÁ½¸ö²ÎÊý¡£µÚÒ»¸ö²ÎÊýÊÇÏëÒª¼ì²éµÄ¶ÔÏ󣬯äÓàµÄ²ÎÊýÊDZ»¼ì²é¶ÔÏóµÄ½Ó¿Ú¡£¸Ãº¯Êý¼ì²éÆ÷µÚÒ»¸ö²ÎÊý´ú±íµÄ¶ÔÏóÊÇ·ñʵÏÖÁËÄÇЩ½Ó¿ÚËùÉùÃ÷µÄ·½·¨£¬Èç¹û©µôÁËÈκÎÒ»¸ö£¬¾Í»áÅ×´í£¬ÆäÖлá°üº¬±»ÒÅ©µÄ·½·¨µÄÓÐЧÐÅÏ¢¡£ÕâÖÖ·½Ê½²»¾ß±¸×ÔÎÒÃèÊöÐÔ£¬ÐèÒªÒ»¸ö¸¨ÖúÀàºÍ¸¨Öúº¯ÊýÀ´°ïÖúʵÏÖ½Ó¿Ú¼ì²é£¬¶øÇÒËüÖ»¹ØÐÄ·½·¨Ãû³Æ£¬²¢²»¼ì²é²ÎÊýµÄÃû³Æ¡¢ÊýÄ¿»òÀàÐÍ¡£
ËÄ¡¢InterfaceÀà
ÔÚÏÂÃæµÄ´úÂëÖУ¬¶ÔInterfaceÀàµÄËùÓз½·¨µÄ²ÎÊý¶¼½øÐÐÁËÑϸñµÄ¿ØÖÆ£¬Èç¹û²ÎÊýûÓÐÑé֤ͨ¹ý£¬ÄÇô¾Í»áÅ׳öÒì³£¡£¼ÓÈëÕâÖÖ¼ì²éµÄÄ¿µÄ¾ÍÊÇ£¬Èç¹ûÔÚÖ´Ðйý³ÌÖÐûÓÐÅ׳öÒì³££¬ÄÇô¾Í¿ÉÒԿ϶¨½Ó¿ÚµÃµ½ÁËÕýÈ·µÄÉùÃ÷ºÍʵÏÖ¡£
var Interface = function(name ,methods){
if(arguments.length!=2){
throw new Error('2 arguments required!');
}
this.name=name;
this.methods=[];
for(var i=0;len=methods.length; i<len;i++){
if(typeof(methods[i]!== 'String')){
throw new Error('method name must be String!');
}
this.methods.push(methods[i]);
}
}
Interface.ensureImplements= function(object){
if(arguments.length<2){
throw new Error('2 arguments required at least!');
}
for(var i=0;len=arguments.length;i<len;i++){
var interface=arguments[i];
if(interface.constructor!== Interface){
throw new Error('instance must be Interface!');
}
for(var j=0;methodLength= interface.methods.length; j<methodLength;j++){
var method=interface.methods[j];
if(!object[method]||typeof(object[method])=='function')){
throw new Error('object does not implements method!');
}
}
}
} |
Æäʵ¶àÊýÇé¿öÏ£¬½Ó¿Ú²¢²»ÊǾ³£±»Ê¹Óõģ¬ÑϸñµÄÀàÐͼì²é²¢²»×ÜÊÇÃ÷Öǵġ£µ«ÊÇÔÚÉè¼Æ¸´ÔÓµÄϵͳµÄʱºò£¬½Ó¿ÚµÄ×÷ÓþÍÌåÏÖ³öÀ´ÁË£¬Õâ¿´ËÆ½µµÍÁËÁé»îÐÔ£¬È´Í¬Ê±Ò²½µµÍÁËñîºÏÐÔ£¬Ìá¸ßÁË´úÂëµÄÖØÓÃÐÔ¡£ÕâÔÚ´óÐÍϵͳÖÐÊDZȽÏÓÐÓÅÊÆµÄ¡£ÔÚÏÂÃæµÄÀý×ÓÖУ¬ÉùÃ÷ÁËÒ»¸ödisplayRoute·½·¨£¬ÒªÇóÆä²ÎÊý¾ßÓÐÈý¸öÌØ¶¨µÄ·½·¨£¬Í¨¹ýInterface¶ÔÏóºÍensureImplements·½·¨À´±£Ö¤ÕâÈý¸ö·½·¨µÄʵÏÖ£¬·ñÔò½«»áÅ׳ö´íÎó¡£
//ÉùÃ÷Ò»¸ö½Ó¿Ú£¬ÃèÊö¸Ã½Ó¿Ú°üº¬µÄ·½·¨
var DynamicMap=new Interface{'DynamicMap',['centerOnPoint','zoom','draw']};
//ÉùÃ÷Ò»¸ödisplayRoute·½·¨
function displayRoute(mapInstance){
//¼ìÑé¸Ã·½·¨µÄmap
//¼ìÑé¸Ã·½·¨µÄmapInsstanceÊÇ·ñʵÏÖÁËDynamicMap½Ó¿Ú£¬Èç¹ûδʵÏÖÔò»áÅ׳ö
Interface.ensureImplements( mapInstance,DynamicMap);
//Èç¹ûʵÏÖÁËÔòÕý³£Ö´ÐÐ
mapInstance.centerOnPoint(12,22);
mapInstance.zoom(5);
mapInstance.draw();
} |
ÏÂÃæµÄÀý×ӻὫһЩÊý¾ÝÒÔÍøÒ³µÄÐÎʽչÏÖ³öÀ´£¬Õâ¸öÀàµÄ¹¹ÔìÆ÷ÒÔÒ»¸öTestResultµÄʵÀý×÷Ϊ²ÎÊý¡£¸ÃÀà»á¶ÔTestResult¶ÔÏóËù°üº¬µÄÊý¾Ý½øÐиñʽ»¯(Format)ºóÊä³ö£¬´úÂëÈçÏ£º
var ResultFormatter=function(resultObject){
//¶ÔresultObject½øÐмì²é£¬±£Ö¤ÊÇTestResultµÄʵÀý
if(!(resultObject instanceof TestResult)){
throw new Error('arguments error!');
}
this.resultObject=resultObject;
}
ResultFormatter.prototype.renderResult =function(){
var dateOfTest= this.resultObject.getData();
var resultArray= this.resultObject.getResults();
var resultContainer= document.createElement('div');
var resultHeader= document.createElement('h3');
resultHeader.innerHTML='Test Result from ' +dateOfTest.toUTCString();
resultContainer.appendChild( resultHeader);
var resultList= document.createElement('ul');
resultContainer.appendChild(resultList);
for(var i=0;len= resultArray.length;i<len; i++){
var listItem= document.createElement('li');
listItem.innerHTML= resultArray[i];
resultList.appendChild('listItem');
}
return resultContainer;
} |
¸ÃÀàµÄ¹¹ÔìÆ÷»á¶Ô²ÎÊý½øÐмì²é£¬ÒÔÈ·±£ÆäµÄȷΪTestResultµÄÀàµÄʵÀý¡£Èç¹û²ÎÊý´ï²»µ½ÒªÇ󣬹¹ÔìÆ÷½«»áÅ׳öÒ»¸ö´íÎó¡£ÓÐÁËÕâÑùµÄ±£Ö¤£¬ÔÚ±àдrenderResult·½·¨µÄʱºò£¬¾Í¿ÉÒÔÈ϶¨ÓÐgetDataºÍgetResultÁ½¸ö·½·¨¡£µ«ÊÇ£¬¹¹Ô캯ÊýÖУ¬Ö»¶Ô²ÎÊýµÄÀàÐͽøÐÐÁ˼ì²é£¬Êµ¼ÊÉÏÕâ²¢²»Äܱ£Ö¤ËùÐèÒªµÄ·½·¨¶¼µÃµ½ÁËʵÏÖ¡£TestResultÀà»á±»Ð޸ģ¬ÖÂʹÆäʧȥÕâÁ½¸ö·½·¨£¬µ«Êǹ¹ÔìÆ÷Öеļì²éÒÀ¾É»áͨ¹ý£¬Ö»ÊÇrenderResult·½·¨²»ÔÙÓÐЧ¡£
´ËÍ⣬¹¹ÔìÆ÷ÖеÄÕâ¸ö¼ì²éÊ©¼ÓÁËһЩ²»±ØÒªµÄÏÞÖÆ¡£Ëü²»ÔÊÐíʹÓÃÆäËûµÄÀàµÄʵÀý×÷Ϊ²ÎÊý£¬·ñÔò»áÖ±½ÓÅ×´í£¬µ«ÊÇÎÊÌâÀ´ÁË£¬Èç¹ûÓÐÁíÒ»¸öÀàÒ²°üº¬²¢ÊµÏÖÁËgetDataºÍgetResult·½·¨£¬Ëü±¾À´¿ÉÒÔ±»ResultFormatterʹÓã¬È´ÒòΪÕâ¸öÏÞÖÆ¶øÎÞÓÃÎäÖ®µØ¡£
½â¾öÎÊÌâµÄ°ì·¨¾ÍÊÇɾ³ý¹¹ÔìÆ÷ÖеÄУÑ飬²¢Ê¹ÓýӿڴúÌæ¡£ÎÒÃDzÉÓÃÕâ¸ö·½°¸¶Ô´úÂë½øÐÐÓÅ»¯£º
//½Ó¿ÚµÄÉùÃ÷
var resultSet =new Interface('ResultSet', ['getData','getResult']);
//Ð޸ĺóµÄ·½°¸
var ResultFormatter = function(resultObject){
Interface.ensureImplements( resultObject,resultSet);
this.resultObject= resultObject;
} |
ÉÏÊö´úÂëÖУ¬renderResult·½·¨±£³Ö²»±ä£¬¶ø¹¹ÔìÆ÷È´²ÉÓõÄensureImplements·½·¨£¬¶ø²»ÊÇtypeofÔËËã·û¡£ÏÖÔÚµÄÕâ¸ö¹¹ÔìÆ÷¿ÉÒÔ½ÓÊÜÈκηûºÏ½Ó¿ÚµÄÀàµÄʵÀýÁË¡£
Îå¡¢ÒÀÀµÓÚ½Ó¿ÚµÄÉè¼ÆÄ£Ê½
<1>¹¤³§Ä£Ê½£º¶ÔÏ󹤳§Ëù´´½¨µÄ¾ßÌå¶ÔÏó»áÒò¾ßÌåÇé¿ö¶ø²»Í¬¡£Ê¹ÓýӿڿÉÒÔÈ·±£Ëù´´½¨µÄÕâЩ¶ÔÏó¿ÉÒÔ»¥»»Ê¹Óã¬Ò²¾ÍÊÇ˵¶ÔÏ󹤳§¿ÉÒÔ±£Ö¤ÆäÉú²ú³öÀ´µÄ¶ÔÏó¶¼ÊµÏÖÁ˱ØÐèµÄ·½·¨;
<2>×éºÏģʽ£ºÈç¹û²»Ê¹ÓýӿھͲ»¿ÉÄÜʹÓÃÕâ¸öģʽ£¬ÆäÖÐÐÄ˼ÏëÊÇ¿ÉÒÔ½«¶ÔÏóȺÌåÓëÆä×é³É¶ÔÏóͬµÈ¶Ô´ý¡£ÕâÊÇͨ¹ý½Ó¿ÚÀ´×öµ½µÄ¡£Èç¹û²»½øÐÐѼʽ±çÐÍ»òÀàÐͼì²é£¬ÄÇô×éºÏģʽ¾Í»áʧȥ´ó²¿·ÖÒâÒå;
<3>×°ÊÎÕßģʽ£º×°ÊÎÕßͨ¹ý͸Ã÷µØÎªÁíÒ»¸ö¶ÔÏóÌṩ°ü×°¶ø·¢»Ó×÷Óá£ÕâÊÇͨ¹ýʵÏÖÓëÁíÍâÄǸö¶ÔÏóÍêȫһÖµĽӿÚʵÏֵġ£¶ÔÓÚÍâ½ç¶øÑÔ£¬Ò»¸ö×°ÊÎÕߺÍËüËù°ü×°µÄ¶ÔÏó¿´²»³öÓÐÊ²Ã´Çø±ð£¬ËùÒÔʹÓÃInterfaceÀ´È·±£Ëù´´½¨µÄ×°ÊÎÕßʵÏÖÁ˱ØÐèµÄ·½·¨;
<4>ÃüÁîģʽ£º´úÂëÖÐËùÓеÄÃüÁî¶ÔÏó¶¼ÓÐʵÏÖͬһÅú·½·¨(Èçrun¡¢ecxute¡¢doµÈ)ͨ¹ýʹÓýӿڣ¬Î´Ö´ÐÐÕâЩÃüÁî¶ÔÏó¶ø´´½¨µÄÀà¿ÉÒÔ²»±ØÖªµÀÕâЩ¶ÔÏó¾ßÌåÊÇʲô£¬Ö»ÒªÖªµÀËûÃǶ¼ÕýÈ·µØÊµÏÖÁ˽ӿڼ´¿É¡£½è´Ë¿ÉÒÔ´´½¨³öÄ£¿é»¯³Ì¶ÈºÜ¸ßµÄ¡¢ñîºÏ¶ÈºÜµÍµÄAPI¡£ |