標籤:
最近公司的工作還比較輕鬆,自己想去寫一些東西,因為本人是做ios開發的,能夠希望在這個行業能夠結交更多地朋友,下面是本人對一些常用的開發模式,小例子都是去採用的OC語言,希望大家能夠提出觀點,咱們多多去交流.
下面這個小案例就是簡單原廠模式:
簡單原廠模式:
(1)計算機小例子
#########
// 計算機的類
#import <Foundation/Foundation.h>
@interface Calutor : NSObject
{
float _num1;
float _num2;
}
@property float num1;
@property float num2;
- (float)getResult;
@end
#import "Calutor.h"
@implementation Calutor
- (float)getResult{
float result=0;
return result;
}
@end
##########
#import "Calutor.h"
@interface Plus : Calutor
@end
#import "Plus.h"
// 加法類
@implementation Plus
- (float)getResult{
float rel=0;
rel= self.num1+self.num2;
return rel;
}
@end
########
// 減法的類
#import "Calutor.h"
@interface Jian : Calutor
@end
#import "Jian.h"
@implementation Jian
- (float)getResult{
float rel=0;
rel=_num1+_num2;
return rel;
}
@end
########
#import "Calutor.h"
@interface Mul : Calutor
@end
#import "Mul.h"
@implementation Mul
- (float)getResult{
float rel=0;
rel=_num1*_num2;
return rel;
}
@end
#######
#import "Calutor.h"
@interface Div : Calutor
@end
#import "Div.h"
@implementation Div
- (float)getResult{
float rel=0;
rel=_num1/_num2;
return rel;
}
@end
######
// 計算機的工廠類
#import <Foundation/Foundation.h>
#import "Jian.h"
#import "Plus.h"
#import "Mul.h"
#import "Div.h"
@interface CalutorFactory : NSObject
+ (Calutor*)createOperate:(char)c;
@end
#import "CalutorFactory.h"
@implementation CalutorFactory
+ (Calutor*)createOperate:(char)c{
Calutor *cal=nil;
switch (c) {
case ‘+‘:
cal=[Plus new];
break;
case ‘-‘:
cal=[Jian new];
break;
case ‘*‘:
cal=[Mul new];
break;
case ‘/‘:
cal=[Div new];
break;
default:
cal=nil;
break;
}
return cal;
}
@end
#######
#import <Foundation/Foundation.h>
#import "CalutorFactory.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Calutor*cal;
cal=[CalutorFactory createOperate:‘+‘];
cal.num1=2;
cal.num2=3;
printf("%.2f\n",[cal getResult]);
} return 0;
}
因為OC是一門動態語言,對於面向的對象的一些特性表現得更加明顯,上面的小案例就是簡單原廠模式.
謝謝.
淺談一下關於ios開發中一些簡單地開發模式