主流编程语言的对比分析

简介: 最近做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的硬解,在设计模块对外接口时,抽取其共性,搭好框架后,可以先实现软解,在后期再扩展硬解时,无需改变整体代码,即可方便扩展。这也是插件化思想的体现。

替换原则

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

依赖倒置原则

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

接口分离原则

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

目录
相关文章
|
缓存 安全 Java
为什么全局变量可能成为多线程环境中的安全隐患
为什么全局变量可能成为多线程环境中的安全隐患
|
存储 机器学习/深度学习 搜索推荐
【趣学C语言和数据结构100例】86-90
本文介绍并用C语言实现了五种经典排序算法:直接插入排序、折半插入排序、冒泡排序、快速排序和简单选择排序。每种算法都有其特点和适用场景,如直接插入排序适合小规模或基本有序的数据,快速排序则适用于大规模数据集,具有较高的效率。通过学习这些算法,读者可以加深对数据结构和算法设计的理解,提升解决实际问题的能力。
169 4
|
人工智能 搜索推荐 语音技术
未来智能家居技术的发展与应用前景
随着人工智能、物联网等技术的快速发展,智能家居正逐渐成为现代家庭生活的重要组成部分。本文将探讨未来智能家居技术的发展趋势,以及其在提升生活品质、节能环保等方面的广阔应用前景。
478 27
|
Ubuntu Docker 容器
本地wsl的Ubuntu安装docker,不使用docker桌面版
本文提供了在WSL的Ubuntu环境中安装Docker引擎的步骤,包括安装引擎、配置iptables以及启动Docker服务。
1047 2
如何申请微店的API访问权限?
申请微店API访问权限需先注册账号并完成实名认证,随后提交开发申请,学习API接口,实现功能和数据传输,申请授权获取API Key,测试接口,最后正式上线并持续维护优化。
|
SQL 分布式计算 Hadoop
Hive on Tez 的安装配置
Hive on Tez 的安装配置
982 0
Hive on Tez 的安装配置
|
机器学习/深度学习 存储 人工智能
另一种替代Transformer架构将得到有意义的采用
【1月更文挑战第15天】另一种替代Transformer架构将得到有意义的采用
982 2
另一种替代Transformer架构将得到有意义的采用
|
前端开发 JavaScript 测试技术
深入探索自动化测试框架:Selenium与Appium的对比分析
【4月更文挑战第29天】 在快速迭代的软件发展环境中,自动化测试已成为确保软件质量和加速产品上市的关键步骤。本文将重点探讨两种广泛使用的自动化测试框架——Selenium和Appium,通过对比它们的核心特性、适用场景及执行效率,为软件开发和测试团队提供选择指南。文章不仅分析了各自的技术架构和脚本语言支持,还讨论了它们在处理Web应用和移动应用测试时的优缺点,旨在帮助读者根据项目需求做出更加明智的选择。
|
Linux 编译器 开发工具
音视频windows环境ffmpeg搭建
音视频windows环境ffmpeg搭建
498 0
|
小程序 前端开发 开发工具
微信小程序云开发|基于微信小程序实现房产中介平台系统(一)
微信小程序云开发|基于微信小程序实现房产中介平台系统
337 0