http://www.jianshu.com/p/d6ff54d72afb
//==================重新组织数据 - 1
@property (nonatomic,assign)NSInteger length;
@property (nonatomic,assign)NSInteger width;
@end
@implementation ViewController
-#define Scroll_Width self.view.bounds.size.width
-#define Scroll_Height self.view.bounds.size.height
- (void)viewDidLoad {
[super viewDidLoad];
//==================重构函数
//1.重复代码
//2.内联临时变量
//如果只有一次,坚决不创建临时变量
NSString *str = @"ddd";
NSLog(@"%@",str);
//改
NSLog(@"ddd");
//3.尽量去掉临时变量
NSInteger are = Scroll_Height * Scroll_Width;
if (are > 1000) {
//XXXXX
}
//改
if (self.are > 1000) {
//XXXXX
}
//4.写解释性变量 代码逻辑负复杂时,可以考虑
CGRectMake(Scroll_Height - 260 - 50, Scroll_Width - 300 - 50, Scroll_Height - 50 - 300, Scroll_Height - 50);
//改
NSInteger interval = 50;
NSInteger X = Scroll_Height - 260 -interval;
NSInteger Y = Scroll_Width - 300 -interval;
NSInteger W = Scroll_Height - 300 -interval;
NSInteger H = Scroll_Height -interval;
CGRectMake(X, Y, W, H);
//5.移除对参数的赋值
[self creatInteger:5 integer:3];
//==================重构类
//1.搬移方法
//把方法放在最适合的地方
//2.移字段
//每个字段、变量应该放到自己的类中,不能随便放,不属于这个类的字段移走
//3.提炼一个新类
//将原类的一些属性和方法可否有共同点,能否做出一个新类。降低代码耦合
//如一个person类,有number、totalCosts(话费)、name属性,可新建一个TelephoneNumber类,number、totalCosts属性放入里面。
//4.内容移动
//子类都有相同的属性或方法,可将这属性、方法移到父类,若只是一部分,可创建一个子类,写入属性、方法。需要的类的基础此类。
//5.提炼接口
//把某些特殊功能的方法写入接口中,方便其它类调用。
//==================重新组织数据
//1.封装字段
//写属性的get方法,方便子类改变字段结果,提高扩展性
[self interg];
//2.对象替代数值
//比如:原来某类只需要名字属性,后来又需要性别、年龄,可以新增person类。
//常量代替数值
//方便理解
//3. if else
//复杂时,分解。简单,可以合并。
//4考虑用多态解决switch语句
//
//5.传参数时,最好将参数变成对象,数据多时,很方便。
}
-(NSInteger)interg{
//原
//return _length * _width;
//改
return [self getlength] * [self getwidth];
}
-(NSInteger)getlength{
return _length;
}
-(NSInteger)getwidth{
return _width;
}
-(void) creatInteger:(NSInteger) X integer:(NSInteger)Y{
//5- 原方法
if (X > 5) {
X = Y;
}
//5 - 改
NSInteger newX = X;
if (newX > 5) {
newX = Y;
}
}
-(NSInteger)are{
return Scroll_Width * Scroll_Height;
}