App架构-编程语言、面向对象思想
如果只会一门编程语言,无论多么精通,仍然显得不够优秀。
在我们进行APP开发过程中要把握好以下几点:抓中心、看本质、重思想。
2.1 编程语言
2.1.1 Swift
Swift是Apple 2014年编程的编程语言,已支持 Android NDK。
下图是java和swift对比。
2.1.2 Optional
Swift中引用了Optional,可以理解为一种新的类型,很好地解决了OC的“nil or not nil”问题,Java 8也用了Optional。Optional的核心思想是采用契约式编程思想(如断言),将问题显性的呈现出来。
我们可以通过查看源码,了解Swift Optional的定义(Swift/Stdlib/Public/Core/Optional.Swift),其本质是一个枚举,包含none和some(Wapped)两个case,分别代表可选类型“有值”和“无值”两种情况。
@frozen public enum Optional : ExpressibleByNilLiteral { |
2.1.3 Java 和 Swift核心语法对比
下面我们对比下Java/Guava和Swift中对Optional的使用,最终发现Java和Guava非常相似。
- 初始化
Optional xx= Optional.empty(); // java8 |
- 创建对象
// java8 |
// Swift |
- 是否存在
// java |
2.2 面向对象思想
2.2.1 编程范式(Programming Paradigm)
编程范式是编程语言的一种分类,并不是针对哪种具体编程语言,一种语言也可以适用多种编程范式。
编程范式/编程范型,是指从事软件工程的一种典型的编程风格(可以对照方法学),例如,函数式编程、面向对象编程等为不同的编程范式。
常见的编程范式有过程化(命令化)编程、事件驱动编程、面向对象编程及函数式编程等。
过程化(命令式)编程。如将机器/汇编语言、BASIC、C、ForTRAN等支持过程化的编程范式的编程语言归纳为过程是编程语言,特别适合解决现行的算法问题,属于典型的程序流程思想。
事件驱动编程。结合图形用户界面(GUI)编程应用。
面向对象编程(OOP)。面向对象的基本概念–封装、继承、多态,通过类、方法、对象和消息传递,来支持面向对象的程序设计范式,Java和C++都是面向对象的编程语言。
函数编程。函数编程是一种结构化编程,其核心思想是把运算过程尽量携程一些列嵌套的函数调用,在代码建解读、代码管理、并发编程上更加便捷,这是继OO之后越来越火热的一种编程范式。
面向切向编程(AOP)。AOP可以认为是函数式编程的一种衍生范型,利用AOP可以对业务逻辑的各个部分进行隔离,使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,从而提高开发效率。
2.2.2 封装、继承和多态
OO
个人博客: 🏡 ForgetSou