基础设计篇 (一)

背景

:近期正在学习使用DDD(领域驱动设计) 改造优化项目,重新看了一下面向对象编程思想,做下记录不合理之处还请指教。

正题

我们学面向对象这门课时大概重点:包括面向对象概念、类与对象的关系、封装、继承、多态、构造函数、this关键字、static关键字、内部类、异常、包、单例设计模式也有java基础知识。
1、面向对象 与面向过程。
区别(相对):面向对象是相对面向过程而言
思想:面向对象和面向过程都是一种思想
(本质区别)面向对象:将功能封装进对象,强调具备了功能的对象,面向过程强调的是功能、行为面向对象是基于面向过程的。

一个简单的例子。

超市存取东西,
面向过程(找):拿着凭证,找到这个自己的物品存的地方,找到东西,拿走。
面向对象:拿着凭证,给存物品的一个负责人,得到自己的物品。
这个人会,负责存物品,找物品,把物品放到不同的地方,以及通过找到不同的物品。
这个人就是一个对象。
这种事情在生活中很常见。

结合实际操作

我们写代码就要写一个可以服务很多“人”的对象,不能只是适用一个需求。
虽然面向对象思想很简单,但是在快速的开发项目时,特别是我们干项目的快速开发的过程中,为了功能的尽快实现有时也会犯代码不可复用的错误,这个错误修改的成本有时候,比新写一个需求的成本大得多。在我进行代码优化时,看到原来自己写的代码真的是惨不忍睹。
比如一个文章阅读的需求是让传进来文章的阅读数加一。你对这个接口进行单独开发,我们不能只是看这个需求。我们要做的是可以根据传入的数来进行灵活的增加,现在需求是一,但是本质是想对文章进行操作,如果这个字段名称改为热度,加的就不止是一了,所以要对这个数进行可选择性操作,就像我们上面去物品一样,通过凭证去不同的物品,而不是负责人只认识一个顾客。

2、类与对象的关系

类:是对现实生活中事物的描述。

对象:就是这类事物,实实在在存在的个体。

比如两个正常的人作为两个对象,我们对他进行数据的提取
姓名、性别、年龄等必定存在的为一个类,其他的为附加项,其他的业务类比如大学生:专业、学院、学校、导员、年级。对不同业务对象了解之后再去创建所需的类。

**

面向对象三大特征

**

面向对象三大基本特征:封装、继承、多态。
面向对象的过程:我分为两类: 开始:找对象、使用对象;
找不到合适的对象:建立对象、维护对象的关系。

封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方法。(在使用对象时,没有必要知道对象内容是如何完成对应功能的,我们只需要调用对应的方法即可)

封装的好处:将变化隔离(内部功能细节变化不影响使用);便于使用(不用了解内部的具体实现);提高重用性;提高安全性(只对外暴露一些简单的内容供使用)。

封装的原则:将不需要对外提供的内容都隐藏起来;把属性都隐藏起来,只提供公共方法对其访问。

扩展:

函数本身就是java代码中的最简单的封装体。我们使用的框架、方法都是拿来即用。

继承与多态
在继承比较简单,在实际开发过程主要用于实现业务创建pojo类,如上面的人与学生的例子,学生继承 人 这个类。
例子
继承在进行模块划分用到也比较多,比如我们对”人“这个数据进行模块化,每一个业务信息也存在一个保存借口,我们就会创建一个抽象类,里面存在保存,查询等方法,在人这个领域的每一个业务模块也都是一个单独的类,但是都会继承我们创建的抽象类,这样我们在进行获取详细信息时只需要进行调用这个抽象方法,就可以使得我们获取这个“人”的详细信息。
这里既存在继承也使用到了多态;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值