仲介層を介して、Javaのメソッドを呼び出す方法?

ラファエル・ジョーンズ:

これは、ソフトウェア工学コースのための挑戦のプログラミング割り当ての一部です。目的はNetworkLayerInterfaceとApplicationLayerInterface間のセキュリティの層を追加することです。この中間の層がPresentationLayerInterfaceと呼ばれています。

ネットワーク層のためのUML図の一部である抽象メソッドは、次のとおりです。

openConnection()
closeConnection()
sendMessage(String)
receiveMessage(String)
getPresentationLayer()
setPresentationLayer()

アプリケーション層のためのUML図の一部である抽象メソッドは、次のとおりです。

start()
stop()
sendMessage(String)
receiveMessage(String)
getPresentationLayer()
setPresentationLayer()

プレゼンテーション層のためのUML図の一部である抽象メソッドは、次のとおりです。

start()
stop()
sendMessage(String)
receiveMessage(String)
getNetworkLayer()
setNetworkLayer()
getApplicationLayer()
setApplicationLayer()

仲介者としてプレゼンテーション層を使用していないアプリケーション層の初期の実装では、次のようにstart()メソッドのルックス。

@Override
public void start() {
    //TODO: Part 2: Replace with method invocation of the the presentation layer
    networkLayer.openConnection();
}

OpenConnectionメソッド(開始)メソッドの内部では、()メソッドは、ネットワーク層インターフェイスを実装TCPNetwork.javaファイルに実装されています。以下のようになります:

@Override
public void openConnection() {
    System.out.println("Connecting to server ...");
    try {
        socket = new Socket(host, port);
        socketInput = new Scanner(new InputStreamReader(socket.getInputStream()));
        socketOutput = new PrintWriter(socket.getOutputStream(), true);
        waitForIncommingMessages();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println("Connection established.");
 }

どのように私はもはや(割り当てに応じて)ことができればやる私はそうは使用しない方法の開始を()を呼び出していないnetworkLayer.openConnectionを(); その中の?

私は、例えば以下のものを試してみました:

public void start() {
//TODO: Part 2: Replace with method invocation of the the presentation layer
//networkLayer.openConnection(); Originally this
//presentationLayer.start();
//presentationLayer.openConnection(); Can't add method to Presentation Interface

}

私は本当に素人Javaユーザーだので、既存の知識についての仮定をしないでください。

マザールアブデラ:

私の答えは参加します@codebraneコメントを。

あなたが呼び出したい場合はopenConnection()プレゼンテーション層からMethodeのをあなたが呼び出す必要があるので、あなたは、電話をかけるためにあなたのNetworkLayerオブジェクトを取得する必要がありますpresentationLayer.getNetworkLayer().openConnection()

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=24209&siteId=1