開發系統時,主體架構使用介面,介面構成系統的骨架 。這樣就可以通過更換介面的實現類來更換系統的實現。
教員和機構的相關資訊都需要列印,這種like-a關係,使用介面把二者共有的特性抽象出來,在這裡就是把要列印的資訊抽象成介面:
detail()方法是乙個抽象方法,預設可以不寫abstract關鍵字
inte***ce
iinfo
教員類初始化教員資訊,再實現iinfo方法
class
teacher
implements
iinfo
//實現介面iinfo的具體方法
public string detail()
}
學校類安裝印表機,列印資料,實現iinfo方法
class
school
implements
iinfo
//介面的引用變數可以引用它實現類的物件
//多型,程式設計的時候主體框架使用介面或抽象類,是程式又很好的擴充套件性
public
void print(iinfo info)
//實現介面iinfo的具體方法
public string detail()
}
各式印表機繼承了印表機類,所以印表機類的列印方法由具體的子類實現,這裡的print方法應該是乙個抽象方法,印表機類是乙個抽象類。
abstract class printer
public string getbrand()
public
abstract
print(string content);
}
印表機子類實現具體的列印方法:
//彩色印表機
class
colorprinter
extends
printer
public
void print(string content)
}class
blackprinter
extends
printer
public
void print(string content)
}
主方法new物件:印表機物件,學校物件,教員物件
public
class printerdemo
}
輸出結果 面向介面 的程式設計
前幾天 和乙個朋友討論是否需要面向介面的程式設計 我們倆的意見截然相反 我當然是主張要面介面,需求不是乙個程式設計師正真應該 關心的 他則用實際的開發中大部分人不重視或不用介面 來反駁,提倡面向需求來程式設計。蓋 乙個雞圈 我們不會畫藍圖,但是蓋一作大廈吶?乙個好的建築隊的關鍵是要按照設計圖的樣式,...
面向介面的程式設計
面向介面的程式設計,將介面與實現分離,可以極大的降低 的耦合,比如在程式設計中使用的加密介面,如果將具體的加密演算法寫入到使用加密的地方,這樣就會導致,下一次加密方法發生改變的時候會導致大量的地方需要修改。如果是面向介面的程式設計,那麼只會在具體實現 的地方進行重寫乙個加密類即可。對外提供統一的密碼...
Java 面向介面的程式設計
什麼是面向介面程式設計呢?我個人的定義是 在系統分析和架構中,分清層次和依賴關係,每個層次不是直接向其上層提供服務 即不是直接例項化在上層中 而是通過定義一組介面,僅向上層暴露其介面功能,上層對於下層僅僅是介面依賴,而不依賴具體類。這樣做的好處是顯而易見的,首先對系統靈活性大有好處。當下層需要改變時...