swift 新特性 -面向对象
来源:互联网 发布:淘宝怎么加入一淘 编辑:程序博客网 时间:2024/05/21 08:57
因为对swift的认识还不够深入,公司需要换到swift编程,只是看了几个swift写的别人的工程,自我感觉良好.
在项目启动时,也是为了赶进度就按照以前OC的做法(面向对象编程),只是觉得只是语法不同而已,不过尔尔.
逐渐在项目中搭建起各种MVC,各种继承,KVO
在项目日益壮大到两三个星期的时候发现,已经把自己前面的代码忘了差不多,每次为了修改一个实现方法,必须把整个类重新认识一遍,这里花费的时间太多太多.对于快速迭代来说,可不funny.
但是听很多前辈说swift更加简洁,方法,很swift,我是没有一点感觉,所以开始在网上搜索关于swift的资料,希望改变现在的困境.
后来慢慢了解到swift跟以前OC最大的差异就在于swift是<面向协议编程>简称:POP,而OC则是<面向对象编程>简称:OOP
下面是我对POP的简单理解,日后有更深的理解会回来补全:
首先看看swift中,苹果做了哪些努力,作为swift面向协议的主力,系统提供的协议就有55种,如图:
在码农日常中,必须记住的是,"组合优于继承".意思就是多把具体的功能拆分,方便以后复用,继承虽好不能贪杯,当多于三个类继承一个父类,就要考虑重构他.
当然POP正好解决这种耦合,先了解POP怎么使用:
在swift中协议被赋予更强大的能力,可让值传递类型继承(特指:结构体,枚举)
例子:
struct person : ExpressibleByArrayLiteral { var name = "" var id = "" typealias Element = String init(arrayLiteral elements: Element...) { if elements.count == 2{ name = elements[0] id = elements[1] } }}//自定义 结构体比较符号func == (p1: person,p2: person) -> Bool{ return p1.id == p2.id}let p1:person = ["Bruce","10"]print(p1)let p2:person = ["Bruce","10"]print(p2)print(p1 == p2)
0 0
- swift 新特性 -面向对象
- [Swift]9.0swift语言中的面向对象特性
- Swift基础语法(三) 面向对象语法高级特性
- Swift 2.0新特性
- swift新特性
- Swift 3 新特性
- Swift 3 新特性
- Swift 3.0 新特性
- swift 3.0新特性
- Swift 4.0 新特性
- Swift 4.0 新特性
- PHP5新特性: 更加面向对象化的PHP
- PHP5新特性: 更加面向对象化的PHP
- Java面向对象——JDK 1.5新特性
- swift面向对象详解
- Swift面向对象-枚举
- Swift:面向对象(属性)
- swift 面向对象
- C语言读取文件中的数据作为输入和输出
- oracle优化
- 圆周率
- C#高级编程,给线程传递参数有两种方式
- DAX-PowerBI系列
- swift 新特性 -面向对象
- Net操作Excel(终极方法NPOI)
- Java面试题目(非通用模板)
- 凑算式,蓝桥杯2016年第3题
- 亡命之徒
- PTA-堆中的路径
- JSP编码问题:pageEncoding、contentType、charset、setCharacterEncoding和setContentType
- Android常用控件之ProgressDialog
- 递归与分治