设计模式之解释器模式
  TEZNKK3IfmPf 2023年11月15日 30 0


设计模式之解释器模式

 

2java示例



   {

     main([] args) {
    Context context Context();
    context.setSource();
    Translator comma CommaTranslator();
    Translator period PeriodTranslator();
    SentenctTranstor sentence SentenctTranstor();
    sentence.addTranslator(period);
    sentence.addTranslator(comma);
    sentence.translate(context);
    System.out.println(context.getSource());
  }

}
   {
    source;

    getSource() {
     source;
  }

    setSource( source) {
    .source  source;
  }

  
}
    {
   Map, vocabulary HashMap,();
  
     translate(Context context);
}


    Translator {
   CommaTranslator(){
    .vocabulary.put(, );
  }
  
    translate(Context context) {
     sourcecontext.getSource();
    [] sourceArysource.split();
     sb ();
    Set keys.vocabulary.keySet();
    ( i;isourceAry.length;i){
      (keys.contains(sourceAry[i])){
        sb.append(.vocabulary.get(sourceAry[i]));
        sb.append();
      }{
        sb.append(sourceAry[i]);
        sb.append();
      }
    }
    context.setSource(sb.toString());
  }

}


    Translator {
   PeriodTranslator(){
    .vocabulary.put(, );
  }
  
  
    translate(Context context) {
     sourcecontext.getSource();
    [] sourceArysource.split();
     sb ();
    Set keys.vocabulary.keySet();
    ( i;isourceAry.length;i){
      (keys.contains(sourceAry[i])){
        sb.append(.vocabulary.get(sourceAry[i]));
        sb.append();
      }{
        sb.append(sourceAry[i]);
        sb.append();
      }
    }
    context.setSource(sb.toString());
  }

}
    Translator {
   ListTranslator ts ArrayListTranslator();
   SentenctTranstor(){
    .vocabulary.put(, );
    .vocabulary.put(, );
    .vocabulary.put(, );
  }
  
    addTranslator(Translator t){
    .ts.add(t);
  }
  
    translate(Context context) {
    (Translator t:ts){
      t.translate(context);
    }
     sourcecontext.getSource();
    [] sourceArysource.split();
     sb ();
    Set keys.vocabulary.keySet();
    ( i;isourceAry.length;i){
      (keys.contains(sourceAry[i])){
        sb.append(.vocabulary.get(sourceAry[i]));
        sb.append();
      }{
        sb.append(sourceAry[i]);
        sb.append();
      }
    }
    context.setSource(sb.toString());
  }

}

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   48   0   0 i++
  TEZNKK3IfmPf   2024年04月19日   70   0   0 idepython
  TEZNKK3IfmPf   2024年03月29日   114   0   0 i++排序
TEZNKK3IfmPf