Cesium 相機視角與 Mapbox 視角轉換
阿新 • • 發佈:2020-12-08
普通方式
public class DependecyInversionPutong { public static void main(String[] args) { new Person().receiver(new Email()); } } class Email { public String getInfo() { return "email content is " + "hello world"; } } class Person { public void receiver(Email email){ System.out.println(email.getInfo()); } }View Code
升級方式
public class DependecyInversion { public static void main(String[] args) { new Person().receiver(new Email()); } } interface IReceiver { public String getInfo(); } class Email implements IReceiver { public String getInfo() { return "email content is " + "hello world"; } }View Codeclass Person { public void receiver(IReceiver receiver) { System.out.println(receiver.getInfo()); } }
依賴關係傳遞的三種方式
public class DependencyPass { public static void main(String[] args) { // TODO Auto-generated method stub ChangHong changHong = new ChangHong();// OpenAndClose openAndClose = new OpenAndClose(); // openAndClose.open(changHong); //通過構造器進行依賴傳遞 // OpenAndClose openAndClose = new OpenAndClose(changHong); // openAndClose.open(); //通過setter方法進行依賴傳遞 OpenAndClose openAndClose = new OpenAndClose(); openAndClose.setTv(changHong); openAndClose.open(); } } // 方式1: 通過介面傳遞實現依賴 // 開關的介面 // interface IOpenAndClose { // public void open(ITV tv); //抽象方法,接收介面 // } // // interface ITV { //ITV介面 // public void play(); // } // // class ChangHong implements ITV { // // @Override // public void play() { // // TODO Auto-generated method stub // System.out.println("長虹電視機,開啟"); // } // // } //// 實現介面 // class OpenAndClose implements IOpenAndClose{ // public void open(ITV tv){ // tv.play(); // } // } // 方式2: 通過構造方法依賴傳遞 // interface IOpenAndClose { // public void open(); //抽象方法 // } // interface ITV { //ITV介面 // public void play(); // } // class OpenAndClose implements IOpenAndClose{ // public ITV tv; //成員 // public OpenAndClose(ITV tv){ //構造器 // this.tv = tv; // } // public void open(){ // this.tv.play(); // } // } // 方式3 , 通過setter方法傳遞 interface IOpenAndClose { public void open(); // 抽象方法 public void setTv(ITV tv); } interface ITV { // ITV介面 public void play(); } class OpenAndClose implements IOpenAndClose { private ITV tv; public void setTv(ITV tv) { this.tv = tv; } public void open() { this.tv.play(); } } class ChangHong implements ITV { @Override public void play() { // TODO Auto-generated method stub System.out.println("長虹電視機,開啟"); } }
依賴倒轉原則的注意事項和細節