【设计模式】依赖倒转原则
生活随笔
收集整理的這篇文章主要介紹了
【设计模式】依赖倒转原则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
依賴倒轉原則
依賴倒轉原則是指的特點有∶
使用接口傳遞的方法體現依賴倒轉原則
interface Received {public String getInfo(); }class Email implements Received {public String getInfo() {return "使用Email接收。。";} }class Phone implements Received {public String getInfo() {return "使用手機接收、、";} }class Person {/*** 對接口的依賴*/public void received(Received receive) {System.out.println(receive.getInfo());} }public class DependencyInversion {public static void main(String[] args) {// 使用接口傳遞Person person = new Person();person.received(new Email());person.received(new Phone());} }使用構造方法傳遞的方法體現依賴倒轉原則
interface Received {public String getInfo(); }class Email implements Received {public String getInfo() {return "使用Email接收。。";} }class Phone implements Received {public String getInfo() {return "使用手機接收、、";} } /** * 接收實體(調用實體) */ class Person {// 在調用者類中設立構造器public Received receive;public Person(Received receive) {this.receive = receive;}public void received() {System.out.println(receive.getInfo());} }public class DependencyInversion {public static void main(String[] args) {// 構造器傳遞Person person1 = new Person(new Email());person1.received();// 構造器傳遞Person person2 = new Person(new Phone());person2.received();} }使用 setter() 方法傳遞的方法體現依賴倒轉原則(只需要將利用構造器方法傳遞中的“接收實體”中的以接口為參數的構造器改為setter()方法,使用的使用利用setter()方法傳入接口對象即可)
interface Received {public String getInfo(); }class Email implements Received {public String getInfo() {return "使用Email接收。。";} }class Phone implements Received {public String getInfo() {return "使用手機接收、、";} } /** * 接收實體(調用實體) */ class Person {public Received receive;public void setReceive(Received receive) {this.receive = receive;}public void received() {System.out.println(receive.getInfo());} }public class DependencyInversion {public static void main(String[] args) {// setter()方法傳遞Person person = new Person();person.setReceive(new Email());person.received();} }加入有一個【對象obj】,若【obj】直接指向一個對象,而沒有經過一個中間的 緩沖區,那么隨著系統的擴展,如果需要對指向的對象進行功能的擴展難度較大(修改數據、方法等等或許會影響到引用它的obj是否滿足原來需求)。
比如,這里有一個【抽象類A】,它的實現類是B,那我們在操作的時候可以用 A obj = new B(); —— 這樣做的好處是,如果之后要擴展功能,我們不需要直接擴展B(因為B可能也被其他對象所依賴引用),而可以在A中修改代碼,可以對子類B中的方法做一個優化處理。
在繼承時,需要遵循【里氏替換原則】
總結
以上是生活随笔為你收集整理的【设计模式】依赖倒转原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【设计模式】接口隔离原则
- 下一篇: asp.net ajax控件工具集 Au