, instanceOf . , ( , , ).
instanceOf, TCPState, . bool isEstablished() , true TCPEstablished.
interface TCPState {
...
boolean isEstablished();
}
class TCPEstablished implements TCPState {
...
boolean isEstablished() {
return true;
}
}
class TCPClosed implements TCPState {
...
boolean isEstablished() {
return false;
}
}
TCPConnection:
class TCPConnection {
...
boolean isEstablished() {
return this.getState().isEstablished();
}
}
getAllEstablished :
List<TCPConnection> getAllEstablished() {
List<TCPConnection> list = new ArrayList<TCPConnection>();
for(TCPConnection tcp : allConnections) {
if(tcp.isEstablished()) {
list.add(tcp);
}
}
return list;
}
instanceOf . ?