Objective C 外觀模式

2021-08-27 10:06:08 字數 3359 閱讀 3949

今天和大家分享的是外觀模式。這個模式也不難,我猜想很多人都不經意間用過。好吧,先讓我們看看他是如何定義的。

外觀模式(facade),為子系統中的一組介面提供乙個一致的介面,此模式定義 乙個高層介面,這個介面使得這一子系統更加容易使用。

下面給大家展示一下類的結構圖,想必大家一看就明白了:

其實這個模式中,沒有類與類之間的繼承關係,只是進行了簡單的類引用,統一了對外的介面而已。看起來是不是很簡單?廢話不多說了,下面簡單向大家展示一下**吧!

123

45

#import 

@inte***ce

subsystemone:nsobject-(

void

)methodone

;@end

123

4567

#import "subsystemone.h"

@implementation

subsystemone-(

void

)methodone

@end

123

45

#import 

@inte***ce

subsystemtwo:nsobject-(

void

)methodtwo

;@end

123

4567

#import "subsystemtwo.h"

@implementation

subsystemtwo-(

void

)methodtwo

@end

123

45

#import 

@inte***ce

subsystemthree:nsobject-(

void

)methodthree

;@end

123

4567

#import "subsystemthree.h"

@implementation

subsystemthree-(

void

)methodthree

@end

123

45

#import 

@inte***ce

subsystemfour:nsobject-(

void

)methodfour

;@end

123

4567

#import "subsystemfour.h"

@implementation

subsystemfour-(

void

)methodfour

@end

123

4567

891011

1213

1415

16

#import

@class

subsystemone;//此處@class關鍵字的作用是宣告(不是定義哦)所引用的類

@class

subsystemtwo;

@class

subsystemthree;

@class

subsystemfour;

@inte***ce

facade :nsobject-(

facade*)

myinit;-

(void

)methoda;-

(void

)methodb

;@end

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

#import "facade.h"

#import "subsystemone.h"

#import "subsystemtwo.h"

#import "subsystemthree.h"

#import "subsystemfour.h"

@implementation

facade-(

facade*)

myinit-(

void

)methoda-(

void

)methodb

@end

123

4567

891011

12

#import 

#import "facade.h"

intmain

(int

argc

,const

char

*argv

)return0;

}

在開發軟體時候,考慮使用外觀模式的情況一般分為三種情況。第一種情況,設計初始階段,應該要有意識的將不同的兩個分層分離,層與層之間建立外觀facade,這樣可以為複雜的子系統提供乙個簡單的介面,使得耦合大大降低。第二種情況,在開發階段子系統往往因為不斷的重構演化而變得越來越複雜,增加外觀facade可以提供乙個簡單的介面,減少它們之間的依賴。第三種情況,在維護乙個遺留的大型系統時,可能這個系統已經非常難以維護和擴充套件了,如果有新的需求,那麼可以為新系統開發乙個外觀facade類,來提供設計粗糙或高度複雜的遺留**的比較清晰簡單的介面,讓新系統與facade物件互動,facade與遺留**互動所有複雜的工作,這樣可以保持較低的耦合度。

其實,看起來並不難,但是如果想用好還是需要不斷的練習和總結啊!

好啦,」打完」收工!

Objective C 工廠模式

工廠是處理在不指定物件具體型別的情況下建立物件的問題。工廠方法模式的實質是 定義乙個建立物件的介面,但讓實現這個介面的類來決定例項化哪個類。工廠方法讓類的例項化推遲到子類中進行。在物件導向程式設計中,工廠通常是乙個用來建立其他物件的物件。工廠是構造方法的抽象,用來實現不用的分配方案。工廠物件通常包含...

設計模式 外觀模式

外觀模式,我的理解就是將複雜的類進行重新封裝,將簡單的介面呈現出來,降低呼叫端和實際類的耦合性。拿 大話設計模式 上邊關於 和 的例子來說。對於不入門的股民來說,交易有些過於龐大,需要學習的東西很多,如果沒整明白就進行投資,很容易賠錢的。很多剛入 的股民都賠的很慘。而買 有提出了乙個新的觀念,我們買...

設計模式 外觀模式

何為外觀模式?外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得一子系統更加容易使用。它是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和 各子系統的演化,這種過多的耦合面臨很多變化的挑戰。uml類圖 乙個...