美文网首页
封装的注意事项

封装的注意事项

作者: 艾江山 | 来源:发表于2016-03-30 14:24 被阅读156次

    封装、继承、多态是面向对象的三大特性。这也是我们平时在开发中减少冗余代码的工具(我当年年少无知,总想着用Storyboard托先来减少冗余代码)。

    封装不仅能减少你的单个文件的代码行数,还可以让你的代码更加清晰明了,容易让其他程序员读懂。不过层次结构也是有规定的,一般不超过三层。

    当我们想封装给一个库给别人用的时候,就要考虑很多问题。

    首先你要看的是你想实现什么功能,比如我这次是要封装一个按钮,实现弹簧功能。再加上button的title相对于Image的方向(默认image在左title在右)。

    知道功能了,接下来是留给用户的参数。看功能有两个:1动画效果,2title方向  看来至少需要两个参数了。一个是是否再起动画,一个是title方向。那么问题来了,title方向,这个一般是用数字表示。但是谁知道你的数字代表的是哪个方向啊。所以我们这里采用宏定义,让其他小伙伴一看就知道是什么方向

    typedef enum{    //title的方向

    TitleDirection_right,

    TitleDirection_Top,

    TitleDirection_bottom,

    TitleDirection_left

    }TitleDirections;

    以及接下来一个功能是动画,动画不只是动画的开关,还有一个就是动画的时间。以及动画开关的属性,一听开关,我们自然想到BOOL类型,在声明BOOL类型的时候又有一个小细节,就是重写getter方法,这样才能在调用的时候非常容易的看到是说明状态,下面是三个属性

    其他就是一些放方便用户使用的方法,以及初始化方法,这些方法虽然,你不给出用你库的人也可以自己在外面设置,但是这样大大的降低了使用库的人的体验。

    特别注意在封装库的时候千万不要重写init方法,正确的方法是直接重写initwithframe方法,因为在init方法里面实质是会调用initwithframe方法的。而如果你只是重写init方法,用你库的人不知道,他可能会调用initwithframe方法来初始化,这个时候你重写的init方法不会被调用,所以你也白写了。

    相关文章

      网友评论

          本文标题:封装的注意事项

          本文链接:https://www.haomeiwen.com/subject/nnzslttx.html