一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機(jī)編程>

iOS的設(shè)計(jì)模式分析

大?。?/span>0.2 MB 人氣: 2017-09-25 需要積分:0

背景: 最近正在考慮換工作,恰好中間有空檔期,就來深入學(xué)習(xí)一下 iOS 的設(shè)計(jì)模式,雖然都老生常談了,但是這方面確實(shí)是自己的學(xué)習(xí)盲區(qū),遂抽空來繼續(xù)深入研究一下吧

文章目錄

1 對象創(chuàng)建

1.1原型(Prototype)

1.2工廠方法(Factory Method)

1.3抽象工廠(Abstract Factory)

1.4生成器(Builder)

1.5單例(Singleton)

2 接口適配

2.1 適配器(Adapter)

2.2 橋接(Bridge)

2.3 外觀(Facade)

3 對象去耦

3.1 中介者(Mediator)

3.2 觀察者(Observer)

4 抽象集合

4.1 組合(Composite)

4.2 迭代器(Iterator)

5 行為擴(kuò)展

5.1 訪問者(Visitor)

5.2 裝飾(Decorator)

5.3 責(zé)任鏈(Chain of Responsibility)

6 算法封裝

6.1 模板方法(Template Method)

6.2 策略(Strategy)

6.3 命令(Command)

7 性能與對象訪問

7.1 享元(Flyweight)

7.2 代理(Proxy)

8 對象狀態(tài)

8.1 備忘錄(Memento)

1 對象創(chuàng)建

1.1 原型(Prototype)

定義:使用原型實(shí)例指定創(chuàng)建對象的種類,并通過復(fù)制這個(gè)原型創(chuàng)建新的對象。

NSArray *array = [[NSArray alloc] initWithObjects:@1, nil];

array 就是原型了,array2 以 array 為原型,通過 copy 操作創(chuàng)建了 array2。

當(dāng)創(chuàng)建的實(shí)例非常復(fù)雜且耗時(shí),或者新實(shí)例和已存在的實(shí)例值相同,使用原型模式去復(fù)制已經(jīng)存在的實(shí)例效率更高。

1.2 工廠方法(Factory Method)

定義: 創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類。工廠方法使得類的實(shí)例化延遲到其子類。

工廠方法的最初定義好像是專注于讓子類決定創(chuàng)建什么對象,有一種變體,抽象類使用工廠方法創(chuàng)建其私有子類或任何其他類的對象,

iOS的設(shè)計(jì)模式分析

image.png

如上圖,+ create():Product 就是工廠方法,ConcreatFactoryA 與 ConcreateFactoryB 就是兩個(gè)工廠類,ConcreateProductA 與 ConcreateProductB 就是兩個(gè)工廠類對應(yīng)的產(chǎn)品類,通過不同的工廠生產(chǎn)不同類型的產(chǎn)品,且兩個(gè)產(chǎn)品類最終返回的是他們的父類 Product,隱藏了對象的具體類型。工廠方法模式讓創(chuàng)建的對象擁有一組共同的接口,使我們無需關(guān)心做了不同類型接口的具體實(shí)現(xiàn),只需要調(diào)用 Product 的接口就行。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?