• objectivec和c++的一点小比较


    最近,在改造我们程序的网络同步这一块的代码。一个ios上的程序,因为老板是在c++方面造诣很深,所以他建议我使用c++来改造。改造的过程中,碰到了非常多的在语言之间切换的问题,比如网络最底层的东西必须使用ios的库,接受数据后要转化成c++的模型。最后显示又要转化成objc的模型。其实,最后做完之后思路很简单,程序底层完全使用c++构件,虽然有个别地方必须使用objc。然后界面层使用objc。但是,我觉得这个在语言之间切换来切换去是件非常无意义的事情。不如直接使用objc来完成好。于是花了两天的时间,将c++的底层翻译成了objc。在这个翻译的过程中,我发现了c++这个语言相对于objc的优越性。

    一、面向对象上的差异

    objc和c++同样是面向对象的语言,支持继承和多态等特性。但是c++做的要更加极致,这里包括模板、运算符重载、友元函数。。。。。相比而言objc就要弱的多了,甚至对私有变量的保护都显得很棘手。对于使用键值编码的objc来说,这样一个动态语言根本就没有私有变量的概念。你可以通过键值编码来获取objc对象的任意成员变量的内容。

    二、设计模式

    在objc中和c++中使用相同的设计模式,往往objc的代码量要比c++多很多。而且像抽象工厂和工厂模式在objc中实现起来比较困难。

    三、语言本身的局限

    objc极度依赖foudation库,而c++相对灵活,对库依赖性很低。很多时候,开发者可以构件自己的库。

  • 相关阅读:
    JVM系列-001-JVM监控工具
    Java8-CompletableFuture
    Java8-ConcurrentUtils
    Java8-LongAccumulator
    Java8-Atomic
    Java8-ConcurrentHashMap
    Java8-Synchronized-No.02
    Java8-Synchronized-No.01
    Java8-Executors-No.03
    Java8-Executors-No.02
  • 原文地址:https://www.cnblogs.com/yishuiliunian/p/2830138.html
Copyright © 2020-2023  润新知