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 + -
显示快捷键?