Java設計模式 行為型模式之直譯器模式

2021-09-11 05:28:43 字數 1055 閱讀 8283

一、前言

直譯器模式,就像我們生活場景中的翻譯一樣,它給定某種語言,並定義它的文法表示,直譯器通過這種標識來對語句進行翻譯。直譯器模式一般很少用於我們的**開發中,不到萬不得已我們是不會考慮 直譯器這種設計模式的。因為這種設計模式應用場景很少,而且需要的類也很多,很容易引起類膨脹,複雜的語法也使得其難以維護。

二、直譯器模式

概述:給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。

應用場景:

1、編譯器

2、運算表示式

直譯器確實在我們開發中很少用到,因為這種設計模式的適用場景很少,但是這種設計模式也有一些好處的:

1、可擴充套件性比較好,靈活。 2、增加了新的解釋表示式的方式。 3、易於實現簡單文法。

三、**展示

我們通過乙個簡單的翻譯例子來展示直譯器模式 。

3.1 翻譯介面

/**

* 翻譯介面

* @author deng

* */

public inte***ce translate

3.2  實現類

/**

* 中文翻譯英文

* @author deng

* */

public class c_etranslate implements translate

@override

public void translate(string word)

system.out.println("抱歉,詞庫未錄入:"+ word);

}}

3.3 詞庫提供類

public class wordpool 

}

3.4 結果

public class test 

}

男  翻譯:man

女 翻譯:woman

紅 翻譯:red

抱歉,詞庫未錄入:好

JAVA設計模式(行為型) 模板模式

定義乙個操作中的演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義該演算法的某些特定步驟。public class template main 模板定義,提供給外部同型別樣式,特殊方法特殊實現 abstract class abstractplay priv...

設計模式 行為型模式

行為型模式用於描述程式在執行時複雜的流程控制,即描述多個類或物件之間怎樣相互協作共同完成單個物件都無法單獨完成的任務,它涉及演算法與物件間職責的分配。行為型模式分為類行為模式和物件行為模式,前者採用繼承機制來在類間分派行為,後者採用組合或聚合在物件間分配行為。由於組合關係或聚合關係比繼承關係耦合度低...

java設計模式之行為型模式 策略模式

策略模式,指物件有某個行為,但是在不同的場景中,該行為有不同的實現演算法。比如每個人都要 交個人所得稅 但是 在美國交個人所得稅 和 在中國交個人所得稅 就有不同的算稅方法。許多相關類僅僅是行為不同。需要使用乙個演算法的不同實現。演算法使用了客戶不應該知道的資料。策略模式可以避免暴露複雜的 與演算法...