agent idea

Inheritance, composition, the third relationship is proxy, which is the middle way between inheritance and composition

Java does not provide direct support for proxies, his implementation is composition plus inheritance

idea can generate this method directly like get and set

class SpaceShipDelegation {

   private SpaceShipcontrols spaceShipcontrols;
}



class  SpaceShipcontrols {
   public void up() {
   }

   public void down() {
   }

   public void forward() {
   }
   public void back() {
   }
}  

In the class that needs to generate proxy objects, alt+insert ok ok is fine

class SpaceShipDelegation {

   private SpaceShipcontrols spaceShipcontrols;
   public void up() {
      spaceShipcontrols.up();
}
   

   public void down() {
      spaceShipcontrols.down();
   }

   public void forward() {
      spaceShipcontrols.forward();
   }

   public void back() {
      spaceShipcontrols.back();
   }
}

All procedures and their tests

EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {

   public static void main(String[] args) {
       SpringApplication.run(EurekaApplication.class, args);
    SpaceShipDelegation spaceShipDelegation = new SpaceShipDelegation();
    spaceShipDelegation.up();
    spaceShipDelegation.down();
    spaceShipDelegation.back();
    spaceShipDelegation.forward();
   }
}
class SpaceShipDelegation {

   private SpaceShipcontrols spaceShipcontrols;
   public void up() {
      spaceShipcontrols.up();
}
   

}

Test package exception solution

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {

   public static void main(String[] args) {
      SpringApplication.run(EurekaApplication.class, args);
      SpaceShipDelegation spaceShipDelegation = new SpaceShipDelegation();
      spaceShipDelegation.up();
      spaceShipDelegation.down();
      spaceShipDelegation.back();
      spaceShipDelegation.forward();
   }
}
class SpaceShipDelegation {

   private SpaceShipcontrols spaceShipcontrols= new SpaceShipcontrols();

   public void up() {
      spaceShipcontrols.up();
   }

   public void down() {
      spaceShipcontrols.down();
   }

   public void forward() {
      spaceShipcontrols.forward();
   }

   public void back() {
      spaceShipcontrols.back();
   }
}

class  SpaceShipcontrols {
   public void up() {
      System.out.println("up()");
   }

   public void down() {
      System.out.println("down()");
   }

   public void forward() {
      System.out.println("forward()");
   }
   public void back() {
      System.out.println("back()");
   }
}
Because the member variable java initializes will be assigned to null.

   private SpaceShipcontrols spaceShipcontrols= new SpaceShipcontrols();
In fact, NPE-null pointer exception will occur, so initialization is all around us, and we must learn more about the basics.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325901844&siteId=291194637