切面编程之OC篇(面向协议的编程)

从我们刚开始学编程开始,面向对象就被津津乐道,所谓万物皆对象,我们从颤颤巍巍开始认识到这个东西,继承,封装,多态。到用成万行甚至上十万行代码去理解它,最后终于开始理解它,但是随着时间的推移,我们慢慢的发现它的各种弊端,依赖性,耦合性,可维护性,我们开始寻求又没有更好的解决方法,后来开始接触新的思想,切面编程,先了解下它的定义

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

AOP与OOP是面向不同领域的两种设计思想。

OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。

OC是一种非常弱的语言,相比java来讲,后来苹果推出了新的语言,Swift,   Swift 中令人耳目一新的『面向协议编程』在 2015 年 WWDC 上一经推出,街头巷尾都在热情洋溢地讨论着协议扩展(protocol extensions)---这一激动人心的语言新特性, 那我们的OC就真得就无药可救了么?我们如何来实现面向协议的编程思想?

我们知道一个工程的基础服务基本可以划分为 账户服务,资源服务,配置服务,数据缓存服务等等,如果按照 面向对象的思想,就是每个服务创建一个对象,那我们可不可以换一种思想,每个创建一个协议呢,或者创建一个总的协议(里面分为各种服务协议), 只要我遵守这个协议,就能拿到这个协议所有的功能和属性呢,这样当发生变动的时候,我们只需要把协议指向新的类,这个新的类就具有这个协议的功能和属性,是不是体现强大个可迁移性,可维护性。 这就是六大设计模式之 依赖倒置原则,低耦合,强内聚不是一句空话。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 团队开发框架实战—面向切面的编程 AOP 引言 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统...
    Bobby0322阅读 9,665评论 4 49
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,446评论 11 349
  • 本章内容: 面向切面编程的基本原理 通过POJO创建切面 使用@AspectJ注解 为AspectJ切面注入依赖 ...
    谢随安阅读 8,465评论 0 9
  • 之所以喜欢张爱玲,不管她写的文字是那么活灵活现,更喜欢她看事物也是比较通透,本来简单的事,却给人们腐化的这么复杂,...
    琴记阅读 1,046评论 0 0
  • 时间有向的概念,并不是一开始就有的,在历史上,玛雅人就认为时间是循环的。是犹太基督教传统把线性(不可逆)的时间一下...
    HAHA羊阅读 1,742评论 0 0