设计模式Before-after之代理模式
2014-04-01 23:39
309 查看
before.cxx
after.cxx
#include <iostream>
#include <string>
class _Console {
public:
virtual void write(std::string msg) = 0;
};
class Console: public _Console {
public:
void write(std::string msg) {
std::cout << msg;
}
};
class ConsoleProxy: public _Console {
public:
~ConsoleProxy(void) {
this->console.write(this->cache);
}
void write(std::string msg) {
this->cache += msg;
}
private:
Console console;
std::string cache;
};
int main(void) {
ConsoleProxy consoleProxy;
consoleProxy.write("hello");
consoleProxy.write(", ");
consoleProxy.write("world!");
consoleProxy.write("\n");
return 0;
}
#include <iostream> #include <string> class Console { public: void write(std::string msg) { std::cout << msg; } }; int main(void) { Console console; console.write("hello"); console.write(", "); console.write("world!"); console.write("\n"); return 0; }
after.cxx
#include <iostream>
#include <string>
class _Console {
public:
virtual void write(std::string msg) = 0;
};
class Console: public _Console {
public:
void write(std::string msg) {
std::cout << msg;
}
};
class ConsoleProxy: public _Console {
public:
~ConsoleProxy(void) {
this->console.write(this->cache);
}
void write(std::string msg) {
this->cache += msg;
}
private:
Console console;
std::string cache;
};
int main(void) {
ConsoleProxy consoleProxy;
consoleProxy.write("hello");
consoleProxy.write(", ");
consoleProxy.write("world!");
consoleProxy.write("\n");
return 0;
}
相关文章推荐
- 设计模式Before-after之工厂方法模式
- 设计模式Before-after之装饰模式
- 设计模式Before-after之适配器模式
- 设计模式Before-after之简单工厂模式
- 设计模式Before-after之桥接模式
- 设计模式Before-after之享元模式
- 设计模式Before-after之组合模式
- 设计模式Before-after之单例模式
- 学习JavaScript设计模式(代理模式)
- Java 常用设计模式-代理模式Proxy
- iOS 设计模式-Block实现代理的逻辑
- 设计模式之代理模式------静态代理
- 设计模式之代理模式 java (1)
- 设计模式:代理模式
- 深入浅出基于Java的代理设计模式
- 设计模式学习之代理模式
- 常用的设计模式之代理模式
- 【设计模式】代理模式
- C#设计模式(13)——代理模式(Proxy Pattern)
- 设计模式之代理模式