大話設計模式之初見(一)

2021-07-03 20:13:36 字數 3773 閱讀 2409

之前自己敲**的時候沒有特別注意到需要使用什麼樣的設計模式,敲的**多了開始想對設計模式有所了解了。於是,在某網上買了本大話設計模式,自己翻著看了。用oc來實現書中的一些設計模式。也算是對 設計模式的一種加深認識吧。話不多說,上**:

-------工程採用的是mrc模式  ------------ (~ o ~)~zz

#import

//採用

get set

方法初始化

引數這個是工廠的運算類的基類

.h@inte***ce

operation :

nsobject

- (void

)setnumbera:(

nsinteger

)numbera;

- (void

)setnumberb:(

nsinteger

)numberb;

- (nsinteger

)getnumbera;

- (nsinteger

)getnumberb;

- (nsinteger

)getresult;

@end

.m#import

"operation.h"

@implementation

operation

- (void

)setnumbera:(

nsinteger

)numbera

}- (

void

)setnumberb:(

nsinteger

)numberb

}- (

nsinteger

)getnumbera

- (nsinteger

)getnumberb

- (nsinteger

)getresult

@end

//加法運算 .m

#import

"add.h"

@implementation

add- (

nsinteger

)getresult

@end

//減法運算 .m

#import

"sub.h"

@implementation

sub

- (nsinteger

)getresult

@end

//乘法運算.m

#import

"mul.h"

@implementation

mul- (

nsinteger

)getresult

@end

//除法運算 .m

#import

"div.h"

@implementation

div- (

nsinteger

)getresult

else

return

result;

}@end

好了我們的基類和功能類已經建好了。下面該使用我們的工廠模式了。 .h

//工廠類根據需要建立出所需要的運算類

#import

@class

operation

;@inte***ce

operationfactory :

nsobject

+ (operation

*)createoperate:(

nsstring

*)operate;

@end

.m#import

"operationfactory.h"

#import

"operation.h"

#import

"add.h"

#import

"sub.h"

#import

"mul.h"

#import

"div.h"

@implementation

operationfactory

+ (operation

*)createoperate:(

nsstring

*)operate

else

if([operate

isequaltostring

:@"-"

]) else

if([operate

isequaltostring

:@"*"

]) else

if([operate

isequaltostring

:@"/"

])switch

(i)

return

oper;

}@end

//我們的工廠也建好了。萬事俱備只欠使用了。 下面在controller 裡操作。

看**: .m

#import

"viewcontroller.h"

#import

"operation.h"

#import

"operationfactory.h"

@inte***ce

viewcontroller

()@property

(nonatomic

,retain

)operation

*oper;

@property

(retain

,nonatomic

)iboutlet

uitextfield

*numbera;

@property

(retain

,nonatomic

)iboutlet

uitextfield

*operation;

@property

(retain

,nonatomic

)iboutlet

uitextfield

*numberb;

@property

(retain

,nonatomic

)iboutlet

uilabel

*results;

@end

@implementation

viewcontroller

- (void

)viewdidload

- (ibaction

)buttonpressaction:(

id)sender

if([

_operation

.text

isequaltostring

:@"+"

]||[

_operation

.text

isequaltostring

:@"-"

]||[

_operation

.text

isequaltostring

:@"*"

]||[

_operation

.text

isequaltostring

:@"/"

])

else}

- (void

)didreceivememorywarning

- (void

)dealloc

@end

總結:這樣的話只要輸入運算符號,工廠就會例項化出合適的物件。通過多型返回父類的方法實現簡單的計算機的結果哦。

大話設計模式(一)

物件導向設計四大原則 單一原則 乙個類應該只有乙個引起它變化的原因。如果乙個類擔任的職責過多,就等於把這些職責耦合在一起,一旦乙個職責發生改變,很可能會削弱或者抑制其他職責的能力,即要求耦合度盡可能低。開放 關閉原則 對擴充套件開發,對修改關閉。在乙個軟體開發中,常常需要擴充套件專案,我們應該盡可能...

大話設計模式筆記一

在正式開始學習前,需要先複習一下類圖的相關知識。因為在設計模式中大量使用類圖來表達乙個設計模式的結構。類圖複習 首先我們看到了乙個矩形框,他代表乙個類。類圖分為三層,第一層表示類的名稱,如果是抽象類則用斜體表示。第二層是類的特性,通常包括欄位和屬性。第三層是類的操作,通常是方法或行為。表示 publ...

大話設計模式

大話設計模式 這是乙個中國人寫的書,準確的說是部落格。經常聽到有人說國人寫不出好書,而說的人自己有夢想寫出一些書,那言外之意 有些書,是好書,我們可以好好精細研讀。有些書,寫的不是那麼精彩,我們可以借鑑學習。而能出版的書 一些不常見的出版社除外 總有值得我們去學習的東西。其實熟的好與壞很多時候不在於...