ios与android区别小记

先记下最深刻的:

1. oc喜欢用组合来组织类与类之间的关系(比如category)

    java却喜欢用面向对象,继承的方式来衍生出更多的类。

假如你想在所有的activity中写上业务特有的track功能,java会定义一个BaseFragment或BaseActivity来做这件事,以后其他多个页面需要做的也会放在Base类里。每当新写一个fragment或activity,都需要先继承base类。这样会导致继承关系复杂,并且最后把很多不同的事全扔到Base里做。Base里的代码变得不可看。

并且,一个新来的同学可能不知道它们的继承关系;一个基于敏捷开发的小demo想要合进来也变得狠困难。

OC有一种天然的组合方法category。如果你想实现上述的功能,只需对controller派生一个UIViewController(Track)。在需要的页面去import它。通过这样的方式可以将不同功能打散到特定的category里。

ios之所以能做到这一点,是它在编译阶段将include的头文件的代码写入了进来,而C系列的语言是动态不定长的,java为了安全、封闭等考虑,不让开发者写完一个类再去修改里面的内容。

java想要做到动态改原生Activity,只能使用一种Hack的方式,即反射。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,593评论 25 708
  • 曾经很久以前,还是记得那时候还是初中,高中的时候。那时的博客刚刚兴起,作为一个走在时代前沿的少年,这种新时代的产物...
    山楂叶阅读 283评论 0 1
  • 记忆是一副小画 在某个遗忘的角落插上翅膀 突然想飞 往前,是一张白纸 在数不清的日子里,渐渐泛黄 往后,是一片青春...
    许馒头阅读 309评论 4 3
  • 在天边破晓的鱼肚白下,一个小女孩骑着一匹棕色小马马蹄声哒哒哒,小马颈上挂着三个看起来生锈了的铃铛,马鞍上的布垫颜色...
    十鲤阅读 619评论 0 2
  • 薰衣草精油功效及使用心得: ️薰衣草精油是一款强大的通经精油,缓解月经问题:痛经,量少,提前,推后等问题…… 方法...
    姑娘Yao阅读 530评论 0 2