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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

简单工厂模式--加减乘除运算

發(fā)布時(shí)間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单工厂模式--加减乘除运算 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面基于簡單的<加減乘除運(yùn)算>實(shí)例來講講實(shí)用簡單工廠模式:<備注:以后根據(jù)認(rèn)識(shí)的加深,可以添加和修改內(nèi)容>

需求分析:希望程序提供“加減乘除”四種功能。

功能分析:四種功能都是并列的,相互獨(dú)立的。

拓展分析:很有可能拓展新的功能,比如“開根運(yùn)算”。

如何設(shè)計(jì):

1、根據(jù)“功能分析”可以將四種功能都?xì)w并一個(gè)父類出來,然后創(chuàng)建四個(gè)子類繼承它,并且提供空的方法(OC中模擬抽象方法或者虛函數(shù)),這四個(gè)子類分別都要繼承并重寫實(shí)現(xiàn)這個(gè)空方法。這樣,一個(gè)抽象的父類,四個(gè)具體實(shí)現(xiàn)的子類,就可以形成多態(tài)的應(yīng)用:父類聲明,子類創(chuàng)建實(shí)例。

2、然后創(chuàng)建一個(gè)工廠類與功能的抽象父類相互關(guān)聯(lián),然后實(shí)現(xiàn)根據(jù)需求,應(yīng)用多態(tài)來創(chuàng)建功能的實(shí)例。

3、拓展:如果需要添加“開根”的功能,只要添加一個(gè)繼承運(yùn)算類的子類,然后在簡單工廠類創(chuàng)建方法中添加修改一點(diǎn)。

附加代碼:

1 #import <Foundation/Foundation.h> 2 3 @interface Operation : NSObject 4 5 @property double a; 6 @property double b; 7 @property double result; 8 -(double)getResult:(double)a second:(double)b; 9 10 @end 11 12 //>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<< 13 14 #import "Operation.h" 15 16 @implementation Operation 17 18 -(double)getResult:(double)a second:(double)b{ 19 self.a = a; 20 self.b = b; 21 return self.a+self.b; 22 }; 23 24 @end 1 #import "Operation.h" 2 3 @interface SubOperation : Operation 4 5 @end 6 7 //>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<< 8 9 #import "SubOperation.h" 10 11 @implementation SubOperation 12 13 -(double)getResult:(double)a second:(double)b{ 14 self.a = a; 15 self.b = b; 16 self.result = self.a - self.b; 17 return self.result; 18 } 19 20 @end 1 #import "Operation.h" 2 3 @interface AddOperation : Operation 4 5 @end 6 7 #import "AddOperation.h" 8 9 @implementation AddOperation 10 11 -(double)getResult:(double)a second:(double)b{ 12 self.a = a; 13 self.b = b; 14 15 self.result = self.a + self.b; 16 return self.result; 17 }; 18 19 @end 1 #import "Operation.h" 2 3 @interface MulOperation : Operation 4 5 @end 6 7 8 #import "MulOperation.h" 9 10 @implementation MulOperation 11 12 -(double)getResult:(double)a second:(double)b{ 13 self.a = a; 14 self.b = b; 15 16 self.result = self.a * self.b; 17 return self.result; 18 } 19 @end 1 #import "Operation.h" 2 3 @interface DivOperation : Operation 4 5 @end 6 7 #import "DivOperation.h" 8 9 @implementation DivOperation 10 11 -(double)getResult:(double)a second:(double)b{ 12 self.a = a; 13 self.b = b; 14 if (self.b == 0) { 15 NSLog(@"除數(shù)不能為0"); 16 return 0; 17 } 18 self.result = self.a / self.b; 19 return self.result; 20 } 21 22 @end 1 #import <Foundation/Foundation.h> 2 #import "Operation.h" 3 @interface OperationFactory : NSObject 4 +(Operation*)creatOperation:(NSString*)str; 5 @end 6 7 //>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<< 8 9 #import "OperationFactory.h" 10 #import "AddOperation.h" 11 #import "SubOperation.h" 12 #import "MulOperation.h" 13 #import "DivOperation.h" 14 @implementation OperationFactory 15 16 +(Operation*)creatOperation:(NSString*)str{ 17 Operation *oper = NULL; 18 if ([str isEqual: @"+"]) { 19 oper = [[AddOperation alloc] init]; 20 }else if ([str isEqual: @"-"]) { 21 oper = [[SubOperation alloc] init]; 22 }else if ([str isEqual: @"*"]) { 23 oper = [[MulOperation alloc] init]; 24 }else if ([str isEqual: @"/"]) { 25 oper = [[DivOperation alloc] init]; 26 }else { 27 NSLog(@"輸入無效的內(nèi)容"); 28 } 29 return oper; 30 } 31 32 @end 1 #import <Foundation/Foundation.h> 2 #import "OperationFactory.h" 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 5 // insert code here... 6 Operation *op = [OperationFactory creatOperation:@"+"]; 7 NSLog(@"簡單工廠模式算出結(jié)果%f",[op getResult:18 second:8]); 8 Operation *op2 = [OperationFactory creatOperation:@"/"]; 9 NSLog(@"簡單工廠模式算除法%f",[op2 getResult:18 second:0]); 10 NSLog(@"Hello, World!"); 11 } 12 return 0; 13 }

運(yùn)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的简单工厂模式--加减乘除运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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