现有一个板卡,它可能是h4板卡,也有可能能是ce板卡,还有可能是dy板卡,它们有打开板卡,复位板卡,关闭板卡,设置板卡时间,获取板卡信息,获取板卡硬件程序信息等功能。我需要你根据c plus plus中的单一工厂模式,抽象继承等方式,分别写出这几个类,源文件和头文件分开
时间: 2024-05-29 19:10:32 浏览: 14
以下是代码示例:
// board.h
class Board {
public:
virtual ~Board() {}
virtual void open() = 0;
virtual void reset() = 0;
virtual void close() = 0;
virtual void setTime() = 0;
virtual void getInfo() = 0;
virtual void getProgramInfo() = 0;
};
// h4_board.h
class H4Board : public Board {
public:
void open();
void reset();
void close();
void setTime();
void getInfo();
void getProgramInfo();
};
// ce_board.h
class CEBoard : public Board {
public:
void open();
void reset();
void close();
void setTime();
void getInfo();
void getProgramInfo();
};
// dy_board.h
class DYBoard : public Board {
public:
void open();
void reset();
void close();
void setTime();
void getInfo();
void getProgramInfo();
};
// board_factory.h
class BoardFactory {
public:
virtual ~BoardFactory() {}
virtual Board* createBoard() = 0;
};
// h4_factory.h
class H4Factory : public BoardFactory {
public:
Board* createBoard();
};
// ce_factory.h
class CEFactory : public BoardFactory {
public:
Board* createBoard();
};
// dy_factory.h
class DYFactory : public BoardFactory {
public:
Board* createBoard();
};
// board.cpp
void H4Board::open() {
// implementation
}
void H4Board::reset() {
// implementation
}
void H4Board::close() {
// implementation
}
void H4Board::setTime() {
// implementation
}
void H4Board::getInfo() {
// implementation
}
void H4Board::getProgramInfo() {
// implementation
}
void CEBoard::open() {
// implementation
}
void CEBoard::reset() {
// implementation
}
void CEBoard::close() {
// implementation
}
void CEBoard::setTime() {
// implementation
}
void CEBoard::getInfo() {
// implementation
}
void CEBoard::getProgramInfo() {
// implementation
}
void DYBoard::open() {
// implementation
}
void DYBoard::reset() {
// implementation
}
void DYBoard::close() {
// implementation
}
void DYBoard::setTime() {
// implementation
}
void DYBoard::getInfo() {
// implementation
}
void DYBoard::getProgramInfo() {
// implementation
}
// h4_factory.cpp
Board* H4Factory::createBoard() {
return new H4Board();
}
// ce_factory.cpp
Board* CEFactory::createBoard() {
return new CEBoard();
}
// dy_factory.cpp
Board* DYFactory::createBoard() {
return new DYBoard();
}
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)