《第六章:对象与设计》阅读笔记
2017-09-17 23:36
330 查看
这章最主要的就是几个面对对象的概念:
1、职责:在面对对象代码中,客户端不需要考虑具体细节的实现,只要知道使用哪个接口能够完成功能即可。具体的细节实现由对象实现,而不是由客户端代码负责。
2、内聚:内聚指的是一个模块内部各个成分之间互相关联的度量(如一个类将实现某个功能的相关方法集中起来,这些方法可以共享处理的数据,当改变其中一个方法中的数据时,这种改变可以很快反应到其余的方法中。而面对过程编程把相关的方法分开,导致处理数据的代码在多个方法中重复出现)。
3、耦合:系统的各个部分代码紧密的绑在一起时,就会产生耦合,这在面对对象和面对过程编码中都会出现。当我们改变系统中某个组件时,往往其余的组件也需要进行改变。被迫该边的组件越多,该系统的耦合性就越高(注意:需要将耦合和内聚区分开来)。
4、正交:指将职责相关的组件紧紧的结合在一起,与外部环境隔离开来,保持独立。正交性主张重用组件,期望不需要进行任何特殊的配置即可把一个组件插入到新系统中。
5、多态:多态,又被称为‘类切换’,是面向对象的三大特性之一。它指的是在一个公用接口后面维护多个实现。然后根据环境的不同来返回不同的实现。
//创建一个生成柜子的接口
class cabinet
{
public function getcabinet($name)
{
if($name == "衣服"){
$return = new warborde();
}else if($name == "书"){
$return = new bookcase();
}
return $return
}
}
class warborde
{
//some code about warborde
}
class bookcase
{
//some code about bookcase
}
//现在我想要一个书柜
$cabinet = new cabinet();
$getbook = $cabinet->getcabinet("书");
6、封装:封装,面对对象三大特性之一。封装指的是将于只用于类内部的方法和属性使用protect或者private隐藏起来,使客户端无法直接操控这些属性和功能,只能通过给出的特定接口来获取特定数据。
7、进行代码设计时的四大‘路标’:
A、代码重复:重复是代码中最常见的问题,它通常意味这紧密耦合,在编写代码时,需要特别注意重复的代码,想一想它们是不是有必要合并在一起。
B、类知道的太多:当我们在使用全局变量或者允许一个独立的类知道它领域之外的内容时,我们就会把这个类绑定到外部环境中,使这个类很难被复用,进而增加代码的耦合性
C、万能的类:我们常常会使用一个类去完成太多的功能。当一个类的职责过多时,那么在创建子类时很容易出现问题。
D、条件语句:当你的代码中出现过多的条件语句时,你就该考虑是否需要将这个类拆散成为一个或者多个类。
8、UML类图:使用一个图形化的语法来描述面对对象系统。这是之后内容的基础。
1、职责:在面对对象代码中,客户端不需要考虑具体细节的实现,只要知道使用哪个接口能够完成功能即可。具体的细节实现由对象实现,而不是由客户端代码负责。
2、内聚:内聚指的是一个模块内部各个成分之间互相关联的度量(如一个类将实现某个功能的相关方法集中起来,这些方法可以共享处理的数据,当改变其中一个方法中的数据时,这种改变可以很快反应到其余的方法中。而面对过程编程把相关的方法分开,导致处理数据的代码在多个方法中重复出现)。
3、耦合:系统的各个部分代码紧密的绑在一起时,就会产生耦合,这在面对对象和面对过程编码中都会出现。当我们改变系统中某个组件时,往往其余的组件也需要进行改变。被迫该边的组件越多,该系统的耦合性就越高(注意:需要将耦合和内聚区分开来)。
4、正交:指将职责相关的组件紧紧的结合在一起,与外部环境隔离开来,保持独立。正交性主张重用组件,期望不需要进行任何特殊的配置即可把一个组件插入到新系统中。
5、多态:多态,又被称为‘类切换’,是面向对象的三大特性之一。它指的是在一个公用接口后面维护多个实现。然后根据环境的不同来返回不同的实现。
//创建一个生成柜子的接口
class cabinet
{
public function getcabinet($name)
{
if($name == "衣服"){
$return = new warborde();
}else if($name == "书"){
$return = new bookcase();
}
return $return
}
}
class warborde
{
//some code about warborde
}
class bookcase
{
//some code about bookcase
}
//现在我想要一个书柜
$cabinet = new cabinet();
$getbook = $cabinet->getcabinet("书");
6、封装:封装,面对对象三大特性之一。封装指的是将于只用于类内部的方法和属性使用protect或者private隐藏起来,使客户端无法直接操控这些属性和功能,只能通过给出的特定接口来获取特定数据。
7、进行代码设计时的四大‘路标’:
A、代码重复:重复是代码中最常见的问题,它通常意味这紧密耦合,在编写代码时,需要特别注意重复的代码,想一想它们是不是有必要合并在一起。
B、类知道的太多:当我们在使用全局变量或者允许一个独立的类知道它领域之外的内容时,我们就会把这个类绑定到外部环境中,使这个类很难被复用,进而增加代码的耦合性
C、万能的类:我们常常会使用一个类去完成太多的功能。当一个类的职责过多时,那么在创建子类时很容易出现问题。
D、条件语句:当你的代码中出现过多的条件语句时,你就该考虑是否需要将这个类拆散成为一个或者多个类。
8、UML类图:使用一个图形化的语法来描述面对对象系统。这是之后内容的基础。
相关文章推荐
- [阅读笔记]面向对象的设计法则--法则1:优先使用(对象)组合,而非(类)继承 Favor Composition Over Inheritance
- IBM的界面设计原则阅读笔记
- [设计模式笔记]三. 行为型模式--19. Mediator模式(中介者)对象行为型模式(一)
- thinking in java 阅读笔记 第一章 对象入门
- OC面向对象思想,类和对象的关系,类的设计笔记
- thinking in java 阅读笔记 第二章 一切都是对象
- Javascript高级程序设计第二版第六章--面向对象程序设计(Object-Oriented Programming)简称OOP编程--笔记
- thinking in java 阅读笔记 第六章 类再生
- thinking in java 阅读笔记 第六章 类再生
- 设计模式学习笔记二十二:对象的轮回 - 通用对象池的实现
- Linux内核设计与实现 阅读笔记:7、中断和中断处理
- 面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
- Java自学笔记(第六天)-static-类变量-对象变量-javadoc文档-static代码块-单例设计模式
- hadoop设计基础和目标-笔记01 分类: hadoop 2015-03-22 10:43 68人阅读 评论(0) 收藏
- Head First 设计模式 阅读笔记(一)
- More Effective C++ 阅读笔记(十三)--要求或禁止在堆中产生对象
- JavaScript权威设计--事件冒泡,捕获,事件句柄,事件源,事件对象(简要学习笔记十八)
- 【CNN削减阅读笔记】【简化网络设计】【低秩分解】
- 《探索需求-设计前的质量》阅读笔记二
- Redis源码阅读笔记(2)-- 对象robj