ducksimulator.cpp
来自「深入浅出设计模式(书配套c++源代码)。包含20个设计模式的c++实现。」· C++ 代码 · 共 33 行
CPP
33 行
#include "DuckSimulator.hpp"
using namespace HeadFirstDesignPatterns::Compound::Factory;
int QuackCounter::_numberOfQuacks = 0;
void simulate( const Quackable* duck ) { duck->quack();}
int main(int argc, char* argv[]) {
std::auto_ptr< AbstractDuckFactory > duckFactory( new CountingDuckFactory() );
std::auto_ptr< Quackable > mallardDuck( duckFactory->createMallardDuck() ); std::auto_ptr< Quackable > redheadDuck( duckFactory->createRedheadDuck() ); std::auto_ptr< Quackable > duckCall( duckFactory->createDuckCall() ); std::auto_ptr< Quackable > rubberDuck( duckFactory->createRubberDuck() ); std::auto_ptr< Quackable > gooseDuck( new GooseAdapter( new Goose() ) ); std::cout << std::endl << "Duck Simulator: With Abstract Factory" << std::endl; simulate( mallardDuck.get() ); simulate( redheadDuck.get() ); simulate( duckCall.get() ); simulate( rubberDuck.get() ); simulate( gooseDuck.get() ); std::cout << "The ducks quacked " << QuackCounter::getQuacks() << " times" << std::endl;
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?