新农上路
- 积分
- 99
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-12-20
- 最后登录
- 1970-1-1
|
积分不够,看不到答案,下面是我的code, 求赐教
- class TaskHandler {
- public:
- virtual void handleJob() = 0;
- };
- class JobATaskHandler : public TaskHandler {
- public:
- void handleJob() {
- cout << "handling job A" << endl;
- }
- };
- class JobBTaskHandler : public TaskHandler {
- public:
- void handleJob() {
- cout << "Handling job B" << endl;
- }
- };
- struct Job {
- string type;
- string priority;
- TaskHandler *handler;
- };
- class JobQueue {
- queue<Job> jobs;
- public:
- void enqueue(Job job) {
- jobs.push(job);
- }
- void excuteAll() {
- while (!jobs.empty()) {
- Job job = jobs.front();
- jobs.pop();
- (job.handler)->handleJob();
- }
- }
- void registerAPI(Job* job) {
- if (job->type == "TYPE_A") {
- job->handler = new JobATaskHandler();
- } else {
- job->handler = new JobBTaskHandler();
- }
- }
- };
复制代码 |
|