行為型模式之解析器模式實現

2021-08-02 16:56:31 字數 896 閱讀 3973

一些應用提供了內建(build-in)的指令碼或者巨集語言來讓使用者定義他們能夠在系統中進行的操作。interpreter模式的目的就是使用乙個直譯器為使用者提供乙個一門定義語言的語法表示的直譯器,然後通過直譯器來解釋語言中的句子。interpreter模式提供了乙個實現語法直譯器的框架。

context:直譯器上下文環境類。用來儲存直譯器的上下文環境,比如需要解釋的文法等。

abstractexpression:直譯器抽象類。

concreteexpression:直譯器具體實現類。

#include 

using

namespace

std;

#include "string"

class context

public:

void setnum(int num)

int getnum()

void setres(int res)

int getres()

private:

int m_num;

int m_res;

};class expression

;class plu***pression

};class minu***pression

};int main(void)

行為型模式之模板模式實現

模板方法模式是行為型模式之一,它把具有特定步驟演算法中的某些必要的處理委讓給抽象方法,通過子類繼承對抽象方法的不同實現改變整個演算法的行為。模板模式一般應用在具有以下條件的應用中 具有統一的操作步驟或操作過程 具有不同的操作細節 存在多個具有統一操作步驟的應用場景,但某些具體的操作細節卻各不相同。總...

設計模式之解析器

一 作用 定義乙個語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 是指使用規定格式和語法的 直譯器模式是一種類行為型模式。二 特點 它將文法分為終結者和非終結者,挺簡單的。三 例子 抽象表示式 abstract class node 非終結符表示式 class addnode ex...

行為型模式 迭代器模式

迭代器模式 iterator 用於依序遍歷訪問集合物件的每一元素,但不暴露集合物件的內部結構,只允許讓外部來訪問集合內部的資料,在實作上通常會抽象出乙個迭代器類並含有 hasnext 及next 之介面定義 再由其繼承具體子類負責集合物件的遍歷行為之功能。示例 from abc import abc...