私は本当にこのインターフェイスの重要性を理解しようとしていますが、私たちがより迅速に書くのを手助けする以外に、(メソッドを実装するだけで)具体的なクラスのメソッドを使用する必要はありません。訪問者パターンのIVisitableインターフェイスの使用方法は?
定義は、この
受け入れる操作を宣言する抽象化です。これは訪問者 オブジェクトによってオブジェクトが「訪問」されることを可能にする エントリポイントです。 コレクションから各オブジェクトは
を訪れたことができるようにする ために、この抽象化を実装する必要があります。」 その明確な、しかしまだあなたはそれらが不要なのがたくさんあるごとに単一のクラス(のメソッドを受け入れる書くてmanualyすることができます私は同意する仕事)が、まだ横にあなたは...クラスがIVisitableインターフェイスなしで、訪問可能であることを
//IVisitable.java
package Visitor;
/**
*
* @author dragan
*/
public interface IVisitable {
public void accept (Visitor v);
}
// Bgirl.java
public class Bgirl implements IVisitable{
int _br_godina;
public Bgirl(int g) {
br_godina = g;
}
public int getBr_godina() {
return _br_godina;
}
public void accept (Visitor v){
v.visit(this);
}
}
を得ることができること
// Main.java
package Visitor;
/**
*
* @author dragan
*/
public class Main {
public static void main(String[] args) {
Bgirl terra = new Bgirl(5);
System.out.println(terra.getBr_godina());
VisitorImplement v = new VisitorImplement();
}
}
// VisitorImplement.java
package Visitor;
/**
*
* @author dragan
*/
public class VisitorImplement implements Visitor{
@Override
public void visit(Bgirl prva) {
//throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
prva._br_godina = 3;
}
// @Override
// public void visit(Bboy prvi) {
// // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
// System.out.println("BBOY VISIT");
//
// }
//
}
こちらをご覧下さい - http://stackoverflow.com/a/39174843/4390212 – DimaSan
あなたは私たちにIVistableインタフェースを示してもらえと定義のソース?私が知っているvisitorパターンには2つのインターフェースがあります。たとえば:https://en.wikipedia.org/wiki/Visitor_pattern –
ですから、私は理解しているから、別のオブジェクトの配列を持っていると便利です。 polymorphismを使ってacceptメソッドを呼び出しますか? – BabaMara