日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

针对接口编程

發(fā)布時(shí)間:2025/6/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 针对接口编程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

針對(duì)接口編程

針對(duì)接口編程:

針對(duì)接口編程,不要針對(duì)具體編程是依賴倒轉(zhuǎn)原則的另外一種表述。針對(duì)接口編程又稱為面向接口編程,針對(duì)接口編程就是要先設(shè)計(jì)一系列的接口,把設(shè)計(jì)和實(shí)現(xiàn)分離開。

其核心思想是,我們只提供你使用的接口,接口中的代碼如何實(shí)現(xiàn)的我們不管,你可以更改接口中的內(nèi)容,但接口的使用方法是永遠(yuǎn)也不會(huì)改變的。

以下用一個(gè)例子來說明,什么是針對(duì)接口編程。

加密解密是我們用的比較多的東西,有時(shí)候,公司開發(fā)的過程中用到了一種加密算法,輸入字符串后經(jīng)過加密算法處理了,然后輸出加密過的字符串。可能一開始用的是一種加密方法,到后面又換了另外一種加密方法,這個(gè)時(shí)候,如果你不是針對(duì)接口編程,你就得挨個(gè)的修改各個(gè)使用了該加密方法的接口,效率低,對(duì)吧,那就請(qǐng)看下面的例子吧:

先提供加密解密的接口:

CipherInterface.h 與 CipherInterface.m

// // CipherInterface.h // MD5 // // Copyright (c) 2014年 Y.X. All rights reserved. //#import <Foundation/Foundation.h>@interface CipherInterface : NSObject// 加密接口 - (NSString *)enCryptKey:(NSString *)key string:(NSString *)string;// 解密接口 - (NSString *)deCryptKey:(NSString *)key string:(NSString *)string;@end

// // CipherInterface.m // MD5 // // Copyright (c) 2014年 Y.X. All rights reserved. //#import "CipherInterface.h"@implementation CipherInterface// 加密接口 - (NSString *)enCryptKey:(NSString *)key string:(NSString *)string {return nil; }// 解密接口 - (NSString *)deCryptKey:(NSString *)key string:(NSString *)string {return nil; }@end

因?yàn)榧用芙饷艿姆绞接泻芏喾N,但我們這里提供出一個(gè)統(tǒng)一的接口,至于這個(gè)接口里面到底是實(shí)現(xiàn)了那種加密方式,是由我們決定的。

在這里,如果我們用的des加密,我們可以這么寫(以下都是空代碼):

// // DesCrypt.h // MD5 // // Copyright (c) 2014年 Y.X. All rights reserved. //#import <Foundation/Foundation.h>@interface DesCrypt : NSObject// 加密接口 - (NSString *)enDesKey:(NSString *)key string:(NSString *)string;// 解密接口 - (NSString *)deDesKey:(NSString *)key string:(NSString *)string;@end

// // DesCrypt.m // MD5 // // Copyright (c) 2014年 Y.X. All rights reserved. //#import "DesCrypt.h"@implementation DesCrypt// 加密接口 - (NSString *)enDesKey:(NSString *)key string:(NSString *)string {return @"Des"; }// 解密接口 - (NSString *)deDesKey:(NSString *)key string:(NSString *)string {return @"Des"; }@end

此時(shí),可以把接口修改成這樣子:

對(duì)外接口是沒有任何變化的呢

如果,我們要切換加密方式,切換成AES加密,這個(gè)時(shí)候,只用在實(shí)現(xiàn)里面修改就行了。

其實(shí),這就是把設(shè)計(jì)和實(shí)現(xiàn)分離的一個(gè)很好的例子,設(shè)計(jì)的接口具有通用性,而實(shí)現(xiàn)是根據(jù)需求來變化的:),可以方便的改變而不影響使用。

總結(jié)

以上是生活随笔為你收集整理的针对接口编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。