MyBatis 效能優化之延遲載入
阿新 • • 發佈:2021-09-28
模板模式
階段1
//程式庫開發人員 class Library { public: void step1(); void step3(); void step5(); } //應用程式開發人員 class Application { public: bool step2(); bool step4(); } int main() { Labrary lib; Application app; lib.step1(); if(app.step2()) { lib.step3(); } for(int i=0;i<4;++i) { app.step4(); } lib.step5(); }
階段2
//應用程式開發人員 class Libary { public: Libary(); virtual ~Libary(); void run() { step1(); if(step2()) { step3(); } for(int i=0;i<4;++i) { step4(); } step5(); } protected: void step1();//穩定 void step3();//穩定 void step5();//穩定 virtual bool step2();//變化 virtual bool step4();//變化 } //應用程式開發人員 class Application : public Libary { protected: virtual bool step2() override;//子類化實現 virtual bool step4() override;//子類化實現 } int main() { Library* lib=new Application(); lib->run(); delete lib; }
模式定義
定義一個操作中的演算法的骨架(穩定),而將一些步驟延遲(變化)到子類中,Template Method 使得子類可
以不改變(複用)一個演算法的結構即可重定義(override重寫)該演算法的特寫步驟。