-
我们在进行软件设计的时候,有些时候需要隐藏一些方法.不让调用者看到,避免被乱调用.
-
比如我有一台电脑,给小朋友玩,可以读,可以写,但是不希望小朋友重启
class Computer {
void write()
void read()
void reboot()
}
- 那么如何做到把这台电脑给小朋友玩但是又不让对方看到重启按钮的.答案就是使用多重继承
interface Learn {
void write()
void read()
}
interface reBootInter {
void reboot()
}
- 可以做一个两个实现类,首先是一个给小朋友玩的StandardComputer继承Learn类,然后我自用的Computer继承StandardComputer类,然后实现rebootInter接口,我可以控制reboot,给小朋友标准电脑就行了
- 除了不想要把不必要的方法暴露给对方,不想要多余依赖,我明明用不到这个方法,但是我要依赖就会很麻烦.比如有一个门,有三个功能,开锁,锁住,是否已关.
class Door {
void open()
void lock()
void isDoorOpen()
}
- 现在我想要做一个有定时器的门
class Timer {
void register(int timeout, TimeClient timeClient)
}
class TimeClient {
void timeout()
}
- 最简单的办法就是直接door依赖,修改door的类
class Door implement TimeClient {
void open()
void lock()
void isDoorOpen()
void timeout() {
lock()
}
}
- 但是如果其他所有依赖door的类都可以看到timeout方法,其实并没有必要,所以最好的方法就是多重继承,
class TimeDoor extend Door implement Timclient {
void timeout() {
lock()
}
}
网友评论