主流编程语言的对比分析

简介: 最近做Android和IOS项目,由资深windows平台C++开发转型做移动平台,涉及到C++、Java、ObjectC三类语言的对比,本文将从面向对象语言三大特性&五大原则角度对比分析,总结沉淀下来(N年前做Java的时候就想干的事,现在总算动手了)三大特性:封装封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

最近做Android和IOS项目,由资深windows平台C++开发转型做移动平台,涉及到C++、Java、ObjectC三类语言的对比,本文将从面向对象语言三大特性&五大原则角度对比分析,总结沉淀下来(N年前做Java的时候就想干的事,现在总算动手了)

三大特性:

封装

封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。类就是一个封装了数据以及操作这些数据的代码的逻辑实体。

继承

继承:指可以让某个类型的对象获得另一个类型的对象的属性的方法。

C++ Java ObjectC

多态

多态:指一个类实例的相同方法在不同情形有不同表现形式

C++ Java ObjectC

重载

C++ Java ObjectC

五大原则

单一职责原则

对类来说:类的功能要单一,不能包罗万象。

开放封闭原则

对模块来说:在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如在设计解码模块时,要考虑ffmpeg软解、Android和IOS的硬解,在设计模块对外接口时,抽取其共性,搭好框架后,可以先实现软解,在后期再扩展硬解时,无需改变整体代码,即可方便扩展。这也是插件化思想的体现。

替换原则

对继承来说:子类应当可以替换父类并出现在父类能够出现的任何地方。即可通过替换原则验证父类设计是否合理,有无改进。

依赖倒置原则

依赖倒置原则是设计中解耦、减少依赖的核心方法。
举例:依赖倒置的典型时序图—-待补充

接口分离原则

模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

目录
相关文章
|
2月前
|
前端开发 JavaScript Java
一文了解主流开发语言都有哪些!
本文将综合探讨目前市场上最流行、最多人使用的几种主流开发语言,包括它们的特点、典型应用场景以及简单示例代码。
|
1月前
|
JavaScript 前端开发 Java
最受欢迎的8种编程语言解析_kaic
最受欢迎的8种编程语言解析_kaic
|
1月前
|
开发框架 Java .NET
C#编程语言的优势与C++对比
C#编程语言的优势与C++对比
|
2月前
|
Rust Java C++
Rust生态系统与社区支持:跨语言比较的探究
【2月更文挑战第1天】本文旨在比较Rust语言与其他主流编程语言(如Python、Java、C++)在生态系统与社区支持方面的差异与优势。我们将从标准库、第三方库、工具链、社区活跃度和文档质量等多个维度进行深入分析,以揭示Rust在这些方面所展现出的独特之处和潜力。
|
3月前
|
机器学习/深度学习 前端开发 JavaScript
WebAssembly 的魅力:高效、安全、跨平台(下)
WebAssembly 的魅力:高效、安全、跨平台(下)
WebAssembly 的魅力:高效、安全、跨平台(下)
|
3月前
|
JavaScript 前端开发 安全
WebAssembly 的魅力:高效、安全、跨平台(上)
WebAssembly 的魅力:高效、安全、跨平台(上)
WebAssembly 的魅力:高效、安全、跨平台(上)
|
6月前
|
前端开发 JavaScript Java
主流编程语言介绍
本篇文章在第一部分中说明了其中五个编程语言(Python,Java,JavaScript,Go,PHP)的作用概述,并在第二部分中给出了两个Python和PHP的学习网站,详情请看正文。
242 3
主流编程语言介绍
|
6月前
|
人工智能 安全 编译器
什么是Zig? Zig为什么成为最赚钱的语言? 编程语言Zig是什么? 编程语言Zig:简单、安全、高效的系统级编程语言
什么是Zig? Zig为什么成为最赚钱的语言? 编程语言Zig是什么? 编程语言Zig:简单、安全、高效的系统级编程语言
212 0
|
7月前
|
小程序 JavaScript 前端开发
4大主流小程序平台介绍及其优缺点对比
小程序是一种轻量级应用程序,能够在手机上直接运行,无需下载安装,适用于一些简单的功能场景,如点餐、预约、查看天气等。以下是目前主流的小程序平台及其优缺点对比
335 0
|
11月前
|
人工智能 Rust 前端开发
2023编程语言趋势
Python持续霸榜,PHP依旧颓势,Java雄风不再,Rust热度不减,汇编迅速崛起,C语言地位稳固
292 0
2023编程语言趋势