美文网首页面向对象
面向对象(一)

面向对象(一)

作者: 万州大牛 | 来源:发表于2017-03-12 13:32 被阅读3次

忌过程耦合,忌封装性差,

三个原则,一是封装,二是继承,三是多态

注意保护,类的私有成员变量。

SOLID原则

单一,开闭,里氏替换,接口分离,依赖倒置

私有成员,内部状态

构造注入

属性注入

方法参数注入

属性返回内部状态

方法返回内部状态

类,明确用途

生命周期,何时创建,状态变化,何时销毁

关联哪些资源,资源的状态变化

很难找到修改点,修改就容易引入BUG

单一职责SRP

分解长方法,移至短小方法

switch单独一个方法

提取方法之后,重新命名方法內变量,参数的名字

提取方法之后,观察方法內依赖的对象,方法的意图,思考方法是否仍然属于当前类的职责。

多数情况下,方法依赖什么对象,简单来说,方法的参数,是什么对象,那么方法就应该存在于那个对象所在的类中。

在将方法移动到依赖对象类中后,可能参数不再需要,方法名字继续变化,根据实际进行调整测试通过。

对于循环內多行语句,多个职责,可以考虑提取方法,每个方法都进行循环,执行单个职责。

switch语句不要用在另一个对象的某个属性上,最好在属性自己所在对象上使用switch

方法再次移动到某个类后,可能需要原类属性作为传入参数调整。

始终记住,职责,意图,单一职责,单一意图

我们将方法都归位之后,通俗讲就是,方法足够小,并居住在他应该在的类中。

我们要开始考虑继承了。。。。

通常适合继承的是,类型,有多少种类型呢,换句话说,有多少个子类呢?

有了继承,子类的关系,我们就可以利用多态,替换掉 switch 判断。

多态,往往更能表达灵活清晰的条件逻辑,switch 判断,if else 判断。

重复代码。

相同的程序结构。

同一个类中,两个方法有相同的代码逻辑。

两个类,兄弟子类,含有相同的类似代码逻辑,提取出来,放到父类。这时候,有多个选择,父类一个方法,父类一个默认实现,子类重写,父类做一个模板方法模式,子类重写等。

两个毫不相干的类,出现重复类似代码。提取出来,放在一个新类里面。

方法太长

方法內的相同功能逻辑块,if,switch,while 等,这些都是可以提取为更小方法的信号。

过大的类

参数过多

一个原则,方法的参数,应该大多数可以在其宿主类中获得。

参数实在太多,应该传递对象参数。

代码发散式变化

代码散乱式变化

依恋情节

将数据和对数据的操作行为包装在一起。

有个方法,过多的使用另外一个类数据,方法。此时应该把这个方法移动到那个类。

数据泥团

a字段,b字段总是一起出现,a参数,b参数总是一起出现,

这种情况,就需要为a,b封装一个对象

临时变量,不要重复赋值,重复赋值,说明变量的意图改变,当然除了在循环中。

不要给方法参数赋值。

返回值有多个,的方法,思考分隔为几个小方法,思考返回一个对象。

相关文章

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • 面向对象基础

    一、面向对象概述 1、面向对象编程包括: OOA:面向对象分析OOD:面向对象的设计OOP:面向对象的编程实现 2...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 面向对象:JavaScript

    面向对象 面向对象组成 this指向 第一个面向对象 第一个面向对象加强版 第一个面向对象(this) 原型 原型...

  • 面向对象

    面向对象思想面向对象基本概述面向对象是基于面向过程的编程思想。面向对象:强调的是每一个功能的步骤面向对象:强调的是...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

网友评论

    本文标题:面向对象(一)

    本文链接:https://www.haomeiwen.com/subject/sxgnittx.html