接口分离原则:
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好
在这里就采用多重继承来解决,代码如下:
#include <iostream>
class Door {
public:
virtual void Lock() const = 0;
virtual void Unlock() const = 0;
};
class Alaram {
public:
virtual void setAalram() const = 0;
};
class DoorA:public Door{
public :
DoorA(){
}
~DoorA(){
}
void Lock() const{
std::cout<<"DoorA Lock"<<std::endl;
}
void Unlock() const {
std::cout<<"DoorA Unock"<<std::endl;
}
};
class AlaramDoor:public Alaram,public Door {
public:
AlaramDoor(){
}
~AlaramDoor(){
}
void setAalram() const {
std::cout<<"AlaramDoor setAalram"<<std::endl;
}
void Lock() const{
std::cout<<"AlaramDoor Lock"<<std::endl;
}
void Unlock() const {
std::cout<<"AlaramDoor Unock"<<std::endl;
}
};
int main() {
Door *pdoor = new AlaramDoor();
if(pdoor == NULL) {
exit(1);
} else {
pdoor->Lock();
pdoor->Unlock();
}
return 0;
}
除了此方法外,我们还可以采用代理的方式来解决!