zoukankan      html  css  js  c++  java
  • day 6


    面向某个东西,就表明这个东西是主导因素。
    面向对象,那么对象就是主导因素。因此我们首先实现的不是函数,而是“类”,也即对象。

    首先我们知道世界上有很多类,比如人类,爬虫类,鱼类。而人类中还有超人类,变异人类,巨人类等等(仅供参考)。

    面向对象时,我们实现程序,就是先实现某个类,比如“超人类”。然后我们实现它其中的一个方法,比如“cry”。这个cry方法是源自于它的父类“人类”的。如果你不实现它,那么超人类哭起来也和普通人类没有什么不同。这就是面向对象中的“继承”。

    而在面向过程的编程时,我们只知道方法“cry”,我们首先实现了它,而不考虑任何的其他要素。假设这个cry函数实现了人类的cry。
    过了一段时间,我觉得超人类可以用一滴眼泪让人起死回生,那么应该怎么编程呢?一般来说,在cry里写肯定就行不通了,得用superman_cry函数来替代。而人类的cry怎么办?我们把它改写成了human_cry。
    • 这个时候调用者就头疼了:什么时候调用human_cry,什么时候调用superman_cry呢?
    • 而且是不是每个类想要cry,就要加一个函数呢?
    • 假如我想实现超人类的其他行为,又该怎么做呢?是不是用superman_beat,superman_eat这样来增加一系列函数呢?
    • 而人类中的函数失效了以后,超人类涉及到调用人类的函数又怎么办呢?

    在面向对象时,对象是主导,你只需要调用person.cry()函数,而不需要担心他是人类,超人类,或者是更细节的婴儿时期、青年、壮年、抑或老年。而在面向过程时,你必须给这些诸多可能进行分门别类的一个一个判断,写出众多的函数。在可能越来越多,项目越来越大时,函数就以指数级增长了。
    面向过程非常不利于解耦,对维护也有非常大的麻烦——往往写出代码的人都不能很好的搞定自己的代码。

     
  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/xpython/p/5021273.html
Copyright © 2011-2022 走看看