• 浅谈面相对象与设计模式


    用C写出的代码就是面向过程?用OC、java写出的代码就是面向对象?

    设计模式真的有用吗?

    面向过程与面向对象的区别

    说到面向对象不得不提面向过程,现在基本都是敏捷开发,快速迭代是敏捷开发的最大特点,基本所有的敏捷开发人员都在使用面向对象语言,这是为什么呢?面向对象与面向过程相比有哪些优点呢?

    说到面向过程与面向对象有什么区别,网上有很多观点和看法。

    大概有这么几种:

    1. 面向过程是一件事“该怎么做“,面向对象是一件事“该让谁来做”,然后那个“谁”就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把事做好就行了。

    2. 面向对象: 狗.吃(屎)
      面向过程: 吃.(狗,屎)

    3. 面向过程,自己造电脑。面向对象,自己组装电脑。

    以上几种观点说的都有一些道理,但是都太抽象难以理解,不适合程序员的思维方式。

    程序员的喜欢直接,有图有代码有真相,下面我以程序员的视角,从技术的角度分享一下我对面向对象的理解:

    举个例子便于说明:

    场景:有两个很类似的页面,从服务器获取数据并显示(基本所有的app都有这样的场景):

                                        

    共同点:

    1.从服务器获取列表数据并分页显示。

    2.都有排序功。

    不同点:

    1.请求的url不同,数据解析也不同。

    2.cell的展示样式有差异。

    3.sectionheader展示不同。

    对于这样的问题,下面看看面相过程和面相对象都是如何实现的。  

    上面是面向过程的两种实现方式。最大的问题是重复的代码和ifese非常多,这也是面向过程语言的同病,这就导致了程序难以扩展、难以维护、稳定性差。

                                     

    这个是面向对象的实现。面向对象利用继承、封装、多态等手段,把公共部分抽象到父类里处理,差异部分派生到各个子类处理,这样做的好处是修改或扩展各个子类不会影响到其它子类,派生类只需要关注自己特有的业务部分。这就是面向过程和面相对象的差别。

    总结:

    用C语言写出的代码一定不是面向对象设计的,因为C语言可以实现封装但无法利用继承和多态的优点。只有很好的利用了封装、继承、多态才是真正的面向对象设计,这样设计的程序才能更佳的稳定、更加的便于复用、更佳的易于维护。这就是为什么面向对象越来越火而面向过程越来越弱的原因。

    设计模式真的有用吗

    首先,需要说一下面对对象的目的,面向对象的目标就是要使程序更加的稳定,更加的便于维护,更佳的便于扩展。为了达到这样的目标,面向对象使用的手段是封装、继承、多态。为了使用这些手段,面向对象有6大原则单一职责原则、开闭原则、迪米特法则、依赖倒置原则、里氏替换原则、接口隔离原则。这样原则太抽象了,于是出现了面向对象的23种设计模式,设计模式就是在这6大原则的基础上总结的一些方法。

    设计模式就是前人在遇到不同问题总结的一些不同解决方法。我们在遇到类似问题的

    设计模式是前人在遇到问题的时候总结的一些解决方法。那么在我们遇到类似问题的时候,就可以利用这些成熟的解决方案解决问题。

    下面是一个不太恰当的比喻,以功夫来理解面向对象。

  • 相关阅读:
    中煜软件,数据库删除凭证
    excel vba获取拼音
    windows server 2012 R2 远程桌面授权模式尚未配置
    用C语言实现窗口抖动
    java修饰符
    Java对象和类
    Java基本语法
    Java开发环境笔记
    我的第一个Java程序和Java简介
    笔记本如何设置插入USB鼠标自动禁用触摸板
  • 原文地址:https://www.cnblogs.com/max5945/p/5736893.html
Copyright © 2020-2023  润新知