xaoxuu

这篇博客把分层架构讲的很形象: 三层架构(我的理解及详细分析)

为什么要分层

代码系统分层就好比管理分层一样,各司其职,优点非常多,对于软件后期的维护来说是十分有必要的。它的优点有:

  • 解耦

    上一层依赖于下一层,如果测试下一层没有问题,那么问题就只有可能发现在本层了,便于发现和改正BUG。体现了“高内聚,低耦合”的思想。

  • 分工明确

    各个层次分工明确,将一个复杂问题简单拆分了。

  • 便于维护

    各层间通过接口解耦,接口与实现分离,从而可以非常简单的替换掉实现,或者实际实现等。

  • 逻辑复用(代码复用)和劳动成本的减少

    分层的根本在于代码的复用和劳动成本的减少。分层的最理想化的结果是实现层与层之间的互不依赖的内部实现,所谓的即插即用。

这是一个综合型的开发工具包,包含对系统类的功能扩展和一些常用控件的封装。

使用AXKit,你可以很大程度上简化一些系统方法的调用,例如:使用block的方式创建一个UI控件并为其添加事件响应或者手势; 使用链式语法进行字符串操作、沙盒文件存取和编辑操作、日期修改操作;万能控制器跳转(push/pop到任意层级的VC、跳转到指定文件名的VC)。 提供了代码冷却函数,一段时间内不会重复执行。内置了简单的主题框架、自定义状态栏、消息弹窗控件等UI模块。

像工作中使用的第三方SDK基本上都是闭源的,因为公司不能把自己的机密泄露出去。所以当需要给别人提供SDK但不让他们知道代码的实现时就需要封装成静态库。

静态库有.a库和.framework库,苹果官方更建议我们使用.framework库,因为其更加强大。

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。

假如你需要把一个字典或者别的什么东西保存到沙盒里,你准备怎么做?也许你已经条件反射的想到了操作步骤……其实,你可以不必每次都那么老老实实的把每一步写出来,一行代码就可以了:

1
@"文件名".cachePath.save(要保存的内容);

本质上就是把沙盒文件操作简化为:【路径+保存文件】两个关键点,组成一条链式语法。

说实在话,类似的教程网上很多,基本可以满足大多数人零基础发布CocoaPods,但是其中可能会遇到一些问题,只有亲自尝试过才知道。

准备工作

1. clone远程仓库到本地

1
git clone 你的仓库链接

2. 注册trunk

注册的命令

1
pod trunk register 你的邮箱 你的用户名

记得去邮箱里验证,然后可以输入以下命令查看个人信息

1
pod trunk me

这是我的毕业设计项目。

界面使用最广泛的四页面设计,分别为:主页、情景、设备、发现。
主页是核心功能,实现一键连接蓝牙灯、自由调节颜色、亮度、设置定时关灯等功能。
情景页是保存用户设置的情景模式,可以根据使用场景不同快速切换至对应的工作模式。
设备页可以管理多台蓝牙灯。
发现页提供一些智能家居相关资讯。