概念与命名
简言之,使用缩略词对多次出现的概念添加有意义的语境进行命名。
函数
函数设计应尽量让其功能单一,输入参数少为好,尽量属于同一抽象层次。
函数名只是一个指针,函数体的代码只是一段任何人都可以调用的代码,函数体里面的代码可以是动态的(根据你传进参数不一样而动态执行)也可以是静态的(一直都做同样的事)。构造函数也是函数,但是只有与new操作符连用,才会去为函数内的变量申请空间。比如在JAVA语言里,函数一般是放在类里,然后在某一段内存里存放着这段代码,当然,方法有访问权限。
类
封装
面向对象的设计原则:每个类必须保证在任何情况下自身不崩溃,即使其他类恶意使用。最常用的是类的对外接口必须对外部设置的数据指令进行验证(即参数验证)。
抽象代码
解决复杂问题主要有两种思路,一个是把其分为一个个小问题,逐一求解,另外一个是把其简化,先解决简化后的主要问题,再逐步添加被简化的细节,一一解决。
面向对象的分析、设计、编码方法属于简化问题的抽象思想,抽象的都是不具体的,是一个更大的类型。
抽象是从众多的事物中提取共同的本质的特征,舍弃其非本质的特征。抽象具有层次性,忽略的细节越多,抽象的层次越高。
继承是抽象思想的应用,继承要想体现价值,应要与多态联用。继承在抽象实现上,从数据抽象的角度来说,水果类为苹果梨子菠萝等水果的关系进行了关系建模,让他们之间有了一个共同特征的“源”;从过程抽象的角度看,继承体现了分层治之的思想。而抽象是“依赖倒置的”,也就是说,高抽象层次的问题解决往往要依赖于低抽象层次的问题的解——多态便解决该问题。
多态,也称为动态绑定,后期绑定,运行时绑定。
看上面的例子,如果运行fruit.getColor();那么运行具体的哪个方法,是要靠运行时变量fruit所代表的类型实例来确定。