从我们刚开始学编程开始,面向对象就被津津乐道,所谓万物皆对象,我们从颤颤巍巍开始认识到这个东西,继承,封装,多态。到用成万行甚至上十万行代码去理解它,最后终于开始理解它,但是随着时间的推移,我们慢慢的发现它的各种弊端,依赖性,耦合性,可维护性,我们开始寻求又没有更好的解决方法,后来开始接触新的思想,切面编程,先了解下它的定义
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
AOP与OOP是面向不同领域的两种设计思想。
OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
OC是一种非常弱的语言,相比java来讲,后来苹果推出了新的语言,Swift, Swift 中令人耳目一新的『面向协议编程』在 2015 年 WWDC 上一经推出,街头巷尾都在热情洋溢地讨论着协议扩展(protocol extensions)---这一激动人心的语言新特性, 那我们的OC就真得就无药可救了么?我们如何来实现面向协议的编程思想?
我们知道一个工程的基础服务基本可以划分为 账户服务,资源服务,配置服务,数据缓存服务等等,如果按照 面向对象的思想,就是每个服务创建一个对象,那我们可不可以换一种思想,每个创建一个协议呢,或者创建一个总的协议(里面分为各种服务协议), 只要我遵守这个协议,就能拿到这个协议所有的功能和属性呢,这样当发生变动的时候,我们只需要把协议指向新的类,这个新的类就具有这个协议的功能和属性,是不是体现强大个可迁移性,可维护性。 这就是六大设计模式之 依赖倒置原则,低耦合,强内聚不是一句空话。
网友评论