大话设计模式之简单的工厂模式
生活随笔
收集整理的這篇文章主要介紹了
大话设计模式之简单的工厂模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一章:代碼無錯就是優-簡單的工廠模式
先建立一個計算類Operation
Operation.h文件
@interface Operation : NSObject@property(nonatomic,assign)double numberA;@property(nonatomic,assign)double numberB;@end
?
?Operation.m文件
@implementation Operation@end
?
?然后分別創建他們的子類Add,Sub,Mul,Div
Add.h
#import "Operation.h"@interface Add : Operation-(double)OperationAdd;@end
?
?
Add.m
#import "Add.h"@implementation Add-(double)OperationAdd{return self.numberA+self.numberB;}
@end
Sub.h
#import "Operation.h"@interface Sub : Operation -(double)operaSub; @end
Sub.m
#import "Sub.h"@implementation Sub - (double)operaSub{return self.numberA-self.numberB; } @end
Mul.h
#import "Operation.h"@interface Mul : Operation -(double)OperaMul; @end
Mul.m
#import "Mul.h"@implementation Mul -(double)OperaMul{return self.numberA*self.numberB; } @end
Div.h
#import "Operation.h"@interface Div : Operation -(double)OperaDiv; @end
Div.m
#import "Div.h"@implementation Div -(double)OperaDiv{ // double result=0.0;if (self.numberB==0) {NSLog(@"除數不能為0");}return self.numberA/self.numberB; } @end
計算的工廠類OperationFactory.h
#import <Foundation/Foundation.h>
#import "Add.h"
#import "Sub.h"
#import "Mul.h"
#import "Div.h"
@interface OperationFactory : NSObject
-(Operation *)createOperate:(char)opreate;
@end
?
OperationFactory.m
#import "OperationFactory.h"@implementation OperationFactory -(Operation *)createOperate:(char)opreate{Operation *oper;switch (opreate) {case '+':oper=[[Add alloc]init];break;case '-':oper=[[Sub alloc]init];break;case '*':oper=[[Mul alloc]init];break;case '/':oper=[[Div alloc]init];break;}return oper; } @end
?
主函數
#import <Foundation/Foundation.h> #import "OperationFactory.h" int main(int argc, const char * argv[]) {@autoreleasepool {OperationFactory *factory=[[OperationFactory alloc]init];Operation *oper=[factory createOperate:'+'];oper.numberA=100;oper.numberB=200;NSLog(@"%f",[oper opera]);}return 0; }
轉載于:https://www.cnblogs.com/qianLL/p/5230323.html
總結
以上是生活随笔為你收集整理的大话设计模式之简单的工厂模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 折戟沉沙铁未消的下一句是什么啊?
- 下一篇: 消息队列之库存扣减