Ich versuche wirklich, die Bedeutung dieser Schnittstelle zu verstehen, aber abgesehen davon, dass wir schneller die Methoden in den konkreten Klassen schreiben (indem wir nur die Methoden implementieren), kann ich einfach nicht die Notwendigkeit finden, sie zu benutzen.Wie wird die IVisitable-Schnittstelle im Besuchermuster verwendet?
Die Definition ist diese
eine Abstraktion, die den Betrieb übernehmen erklärt. Dies ist der Einstiegspunkt, mit dem ein Objekt vom Besucherobjekt " " "besucht" werden kann. Jedes Objekt aus einer Sammlung sollte diese Abstraktion in implementieren, um in der Lage sein
besucht werden.“ Seine klare, aber immer noch können Sie händisch die in jeder einzelnen Klasse akzeptieren Methoden schreiben (was viele nicht notwendig ist, arbeite ich zustimmen), aber immer noch, dass neben Ihnen eine Klasse ohne die IVisitable Schnittstelle besuchbar, bekommen ...
//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");
//
// }
//
}
bitte hier - http://stackoverflow.com/a/39174843/4390212 – DimaSan
Könnten Sie bitte zeigen uns die IVistable Schnittstelle und die Quelle der Definition? Es gibt zwei Schnittstellen in dem Besuchermuster, die ich kenne, zum Beispiel: https://en.wikipedia.org/wiki/Visitor_pattern –
also von dem, was ich verstehe, es ist nützlich, wenn Sie ein Array von verschiedenen Objekten haben, und Sie können die Accept-Methode durch Polymorphismus aufrufen? – BabaMara