我注意到我的代码的很大一部分是围绕回调构建的.这被认为是"设计缺陷"吗?我应该遵循更好的设计模式吗?
我猜你可以看到观察者模式可以像回调一样使用.你看过了吗?
在Pragmatic Programmer一书中,他们提到了一个等待登机的人的例子.而不是那个人经常向值机台询问她是否可以登机(轮询),办理登机手续台会在航班准备好时向所有感兴趣的人公开宣布.
此示例的伪代码可能如下所示:
class Clerk implements CheckInNotifyer { BunchOfObservers observers = new Bunch(); public void addObserver(CheckInObserver observer) { observers.add(observer); } private void notifyListeners() { observers.all.notifyCheckIn(new CheckInEvent()); } } class Passenger implements CheckInObserver { public void notifyCheckIn(CheckInEvent event) { event.getPlane().board(); } } class WaitingArea { public init() { Passenger passenger = new Passenger(); Clerk clerk = new Clerk(); clerk.addObserver(passenger); } }