设计模式笔记(一):面向对象设计的一些概念

面向对象的出现取代了以往以C/Basic/Fortran等代表的"面向过程"设计方式. 它把数据和处理数据的行为聚合成为一个类, 使一切行为变的更加直观自然, 在现实生活中我们往往能把一些经典的模型用面向对象表达, 生产者消费者、代理等模型都与我们的生活息息相关, 这样一来把对问题的处理对应在某些模型上就容易理解了, 这就是面向对象的最大特点——它们为我们提供一种强有力描述问题方式, 面向对象的另一个特点是以继承的方式来实现代码复用, 这些为特点让编程变的更加轻松.

以下是我读《设计模式 Design Pattern》这本书的记的一些零碎知识, 这本书确实是一本好书!里面每一个句几乎都能引起我的思考。刚看了一两章我我已经能说出面想对象与面向过程他们的四五点区别了,并且记忆深刻。

下面是我的一些笔记和思考,可能有很多我的个人主观观点,如果你有更好的理解非常欢迎评论。


继承

继承表现为由一个类导出另一个类, 一般会对该类进行一些增强, 使之满足一些需求. 继承最主要的功能是复用父类的功能, 如果不满足的功能可以重写(overwrite). 继承以一种静态的方式实现方法(功能)复用, 这种复用在不具有动态性, 即在运行时不可被改变. 相对来说组合是更优的选择.
类继承根据一个对象的实现定义了另一个对象的实现.


接口

接口规定了一个或一组与接口名称语义相符的功能, 功能只有定义没有具体实现.
实现同一组接口/实现父类的部分接口他们都具有相似功能


为什么有接口还需要抽象类呢?

接口是功能更小的颗粒度抽象, 当抽象类实现多个接口是, 这个抽象类就代表了这一组更小颗粒度抽象接口功能统一. 简单来说用抽象类代表一个完整的功能更具体和更容易理解.

使用抽象类的好处

在这里插入图片描述


对接口编程, 而不是对实现编程

接口定义了一个或一组对象的功能, 它规定了对象可以响应那些请求方法(可以调用那些方法).


组合

如果组成类的对象不是动态的, 那么就可以称这个类组合了其他类, 或者说他们的关系是组合.
在类的设计中组合优于继承.


是一个, 像一个

父类导出子类, 例如父类是Animal子类是Fish, 可以称Fish是一个Animal, 如果子类重写了父类的方法或者重新实现了父类的方法, 那么该子类与父类是像的关系, 例如父类仍是Animal, 子类是RobootFish机械鱼, 它重写了父类Animal的外表、内脏(动力装置…)等等, 也就是说它的本质(大部分)已经不是Animal了, 因此我们说RobootFish像Animal. 现实生活中我们不可能称机械鱼是一个动物跟这是同理.

本文完.


想了解作者更多,请移步我的个人网站,欢迎交流、留言~
极客技术空间:https://elltor.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值