九宫格之模型,封装初体验

曾经以为面向对象开发,无非就是封装成类嘛,没什么不同,但是今天在做这个小程序的时候,稍微体会到了一点所谓的,面向对象开发.

以前写C的程序,往往是顺序而过程的编程.像融入到代码中一样,不需要太多的思想.

然而在面向对象编程的时候,需要站在上帝视角上,俯瞰整个项目,着手一个对象模型的构造,在不断的构造对象的时候,实现封装.


===============

用纯代码的方式,实现这样一个小程序



第一步,图标放到Images.xcassets文件中就行了, 因为文件不是太大,不会影响内存的使用, 然后将图片的描述信息,放到Plist文件中,这也相当于实现了一次小封装.


将这些资源准备好, 就可以进行读取了.

从plist文件中就能看出,我们代码中是用一个NSArray 数组接收plist文件中的信息的.

@property (nonatomic, strong) NSArray *appInfos;


再为setter设计功能的时候有不同的方式,也体现了不同程度的封装.

1.我们的目的是从文件中读取相应的控件描述信息给appInfo, 那么我们就直接一点,直接将文件里面读取到的内容放到appinfo中咯

 NSBundle *bundle = [NSBundle mainBundle];
            NSString *path = [bundle pathForResource:@"app" ofType:@"plist"];            
            _appInfos = [NSArray arrayWithContentsOfFile: path];


这样就OK了,但是这样在后续使用的时候, 很依赖该数组中具体封装的属性  "icon" , "name"  如果后期我在添加其他的属性,或者修改, 那么就需要到源码中不断修改.

        因为我们需要不断使用 数组和字典的语法  给控件赋值 而他们的语法明显很依赖 属性


我们应该始终秉承着这样一个原则,我们所写的主代码就是客户, 而我们图片啊,控件啊,描述信息啊就是我们商品, 任由我们的商品配方如何变化,客户要做的就是消费我们的商品

而这具体消费也是我们提供给客户对这件商品的使用方法, 比如对这件商品 吃,喝, 踹等....当我们的配方变化了的时候,这一系列消费动作还是不变的.

比如,我们给客户提供了,对文件的读取,那么我们就仅仅 一个读取接口,对于接口中配方的变化,我们不让客户知道,客户就知道读取OK了行了.


2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值