Proxyパターンは、代理人(Proxy)でもできる処理は代理人が処理し、できない処理は本体が行うような構造。
21.Proxyパターン | TECHSCORE(テックスコア)
main.cppで、
class_proxy_printのコンストラクタに渡したclass_simple_printはnewで生成しているが、deleteがない。
実は、class_proxy_printの中でメンバとしていて、デストラクタでdeleteしているのである。
class_proxy_printは演算子オーバーロードなどで、実質的にclass_simple_printのポインタのような役割となっている。
このようなものをスマートポインタといい、このスマートポインタの元になっている仕組みがProxyパターン。
$ vi main.cpp $ g++ -o main main.cpp simple_print.cpp proxy_print.cpp simple_print_factory.cpp $ ./main ABCDE FGHIJ KLM NOP VWXYZ delete simple_print_ delete simple_print_ $
class_simple_printは破棄されている。
Sample/designpattern/proxy/proxy/src/proxy at master · bg1bgst333/Sample · GitHub