iOS開發設計策略模式

2021-06-27 05:49:09 字數 1819 閱讀 3146

ios應用能加密?全球都沒有的技術,你造嗎?作為開發ios應用的,是不是感到自己out啦?快來看看什麼是ios應用加密:

在ios開發中,使用官方框架,官方sdk中,可以接觸到不少設計模式,可能平時沒有注意,實際上已經用到了不少設計模式

下面舉乙個例子:

比方我有乙個nsmutablearray,裡面每個元素都是乙個nsdictionary,其中nsdictionary有不少「鍵--值」對,我想以「鍵1對應的值1」為標準,對nsmutablearray進行排序。

nsmutablearray

---nsdictionary1

------「name」:"zhangsan"

------「age」:「30」

---nsdictionary2

------「name」:"lisi"

------「age」:「28「

---nsdictionary3

------「name」:"lisi"

------「age」:「48「

下面我需要針對」age「字段進行排序

那麼策略模式在這裡就是這麼展示的:你丟給nsmutablearray物件乙個排序的方法(乙個策略),那麼他就拿這個方法對內部的元素進行排序,你丟給他不同的方法(也就是不同的策略《實際的每個策略,不簡單是乙個引數,而是做一件事情的完整過程》),他就給你不同的結果。

下面貼**

nsarray中存放的是nsdictionary,可以使用策略的方法對nsdictionary進行定製,增加比較的方法。然後呼叫nsarray的sortusingselector方法對陣列進行排序,這裡使用nsdictionay中的時間物件的時間排序。具體操作如下:

1.定製nsdictionary

***.h檔案

@inte***ce nsmutabledictionary(mycompare)

-(nscomparisonresult)mycomparemethodwithdict: (nsmutabledictionary*)theotherdict;

@end

***.m檔案

#import "customdictionary.h"

@implementation nsmutabledictionary(mycompare)

- (nscomparisonresult)mycomparemethodwithdict:(nsmutabledictionary*)anotherdict

if(iselgage

else if (iselgage==iotherage)return nsorderedsame; 

else return nsordereddescending;

} @end

2.使用mycomparemethodwithdict對nsarray進行排序,假設nsarray是從plist檔案中讀取的nsdictionary物件的陣列。

nsstring* documentsdirectory = [paths objectatindex:0];

nsstring *plistpath = [nsstring stringwithformat:@"%@/***.plist",documentsdirectory];

nsmutabledictionary * cachedata = [[nsmutabledictionary alloc] initwithcontentsoffile:plistpath];

[cachearray sortusingselector:@selector(mycomparemethodwithdict:)];//根據年齡降序排序

這樣,cachearray就是排序好的陣列了。

Java事務設計策略

最近閱讀了infoq上的電子書 之後受益匪淺,單獨花了兩周時間將其翻譯了一下.由於英語只是四級水準,所以翻譯內容中的不足之處也請見諒.附件裡第乙份是翻譯後的文件,第二份是英文原文.下面列出文中映象深刻的幾點 事務模型的分類 list 本地事務模式,管理連線 程式設計式事務模式,程式設計管理jta事務...

iOS設計模式 策略

ios設計模式 策略 1.把解決相同問題的演算法抽象成策略 相同問題指的是輸入引數相同,但根據演算法不同輸出引數會有差異 2.策略被封裝在物件之中 是物件內容的一部分 策略改變的是物件的內容.如果從外部擴充套件了物件的行為,就不叫策略模式,而是裝飾模式.3.策略模式可以簡化複雜的判斷邏輯 if el...

iOS設計模式 策略模式

定義一系列演算法,把它們乙個個封裝起來,並且使它們可互相替換。策略模式中的乙個關鍵角色是策略類,它為所有支援的或相關的演算法宣告了乙個共同介面。場景物件使用策略介面呼叫由具體策略類定義的演算法。1 抽象策略角色 通常有乙個介面或乙個抽象類實現 3 環境角色 持有乙個策略類的應用,最終供客戶端呼叫 乙...