• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift中面向协议的编程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

什么是面向协议的编程?

面向协议的编程,是一种编程范式。

编程范式,是一个计算机科学用语。维基百科中的解释是,计算机编程的基本风格或典型模式。通俗来说,就是解决某一个问题的方法不同方法和思路。

像大家很熟悉的,面向对象编程以及面向过程编程,都是一种编程范式。

面向过程编程,关心的焦点是解决某一个问题需要多少步。而面向对象的编程关心的是解决问题需要多少个对象,以及这些对象之间的组织联系。

 

解释完了编程范式这个名字含义之后,我们继续回到正题上来。

 

既然面向协议编程,与面向对象,面向过程一样,是一种编程范式。那么这种编程范式相对其他其他两种范式有什么优点和优势呢。

在回答这个问题之前,我们先来回顾一下面向对象。

大家知道面向对象,相对面向过程已经是一种进步,能够让一个复杂的的工程划分为若干个小的独立的模块,减少了软件的复杂度。

这主要得益于面向对象编程里的几个核心概念,封装,继承,多态。

 

在面向对象的编程世界中,对象是构建程序的基本单元,

封装提供代码一个安全和便捷的访问机制

继承让子类很容易复用父类的代码

多态是对象具有更多抽象能力,写出更加通用的代码。

 

但是大家你在使用它们的时候,也是有成本的。主要有三个

1、implicit data sharing 

 

2、Inheritance issues

每当你创建一个对象的时候,你第一件事就是得考虑它集成谁。并且呢,集成一般是单继承,只能有一个父类,不能有多个。而且,如果在开发中期你想改变自己的父类是一个非常难得事情。还有,父类的所有属性和方法,你都必须得都集成过来,不管你想要还是不想要,没有任何商量的余地。

3、Lost Type Relationship

虽然多态让对象具有更多抽象能力,但是我们必须得写很多类型转换代码。例如,一些基类在调用某些方法的时候,基类没有实现,子类实现了。这个时候你必须将基类转化成子类才能够调用,这造成了类型的缺失。

 

面向协议这个概念的提出,就是为了解决以上面向对象所遇到的问题。

我们以一个具体的例子来看一看面向协议编程是如何写的。

待写

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift—国际化发布时间:2022-07-13
下一篇:
iOSXcode8Uselegacyswiftlanuageversionissue发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap