面向介面的程式設計

2021-07-09 23:58:52 字數 997 閱讀 4665

面向介面的程式設計,將介面與實現分離,可以極大的降低**的耦合,比如在程式設計中使用的加密介面,如果將具體的加密演算法寫入到使用加密的地方,這樣就會導致,下一次加密方法發生改變的時候會導致大量的地方需要修改。如果是面向介面的程式設計,那麼只會在具體實現**的地方進行重寫乙個加密類即可。

對外提供統一的密碼介面

@inte***ce cipherinte***ce : nsobject

// 加密介面

+ (nsstring )encryptkey:(nsstring )key string:(nsstring *)string;

// 解密介面

+ (nsstring )decryptkey:(nsstring )key string:(nsstring *)string;

@end

當使用具體的加密演算法比如des時候:

@inte***ce descrypt : nsobject

// 加密介面

+ (nsstring )endeskey:(nsstring )key string:(nsstring *)string;

// 解密介面

+ (nsstring )dedeskey:(nsstring )key string:(nsstring *)string;

@end

在具體實現時候呼叫實際需要的加密類即可:

@implementation cipherinte***ce

+ (nsstring )encryptkey:(nsstring )key string:(nsstring *)string

+ (nsstring )decryptkey:(nsstring )key string:(nsstring *)string

@end

同樣的在持久化儲存中,在具體使用到儲存的地方,是需要使用乙個介面類即可,沒有必要將具體持久化儲存手段比如sqlite與coredata**融入到具體的使用場景中,這樣在需要替換儲存手段的時候可能會非常麻煩!

面向介面 的程式設計

前幾天 和乙個朋友討論是否需要面向介面的程式設計 我們倆的意見截然相反 我當然是主張要面介面,需求不是乙個程式設計師正真應該 關心的 他則用實際的開發中大部分人不重視或不用介面 來反駁,提倡面向需求來程式設計。蓋 乙個雞圈 我們不會畫藍圖,但是蓋一作大廈吶?乙個好的建築隊的關鍵是要按照設計圖的樣式,...

Java 面向介面的程式設計

什麼是面向介面程式設計呢?我個人的定義是 在系統分析和架構中,分清層次和依賴關係,每個層次不是直接向其上層提供服務 即不是直接例項化在上層中 而是通過定義一組介面,僅向上層暴露其介面功能,上層對於下層僅僅是介面依賴,而不依賴具體類。這樣做的好處是顯而易見的,首先對系統靈活性大有好處。當下層需要改變時...

多型 面向介面的程式設計思想

開發系統時,主體架構使用介面,介面構成系統的骨架 這樣就可以通過更換介面的實現類來更換系統的實現。教員和機構的相關資訊都需要列印,這種like a關係,使用介面把二者共有的特性抽象出來,在這裡就是把要列印的資訊抽象成介面 detail 方法是乙個抽象方法,預設可以不寫abstract關鍵字 inte...