面向对象&设计模式

1、面向对象&设计模式概述

  • 面向对象解决的是复用性和可扩展性,设计模式是运行面向对象分析方法总结出来的一套经验,常说的"找到变化、封装变化"就指的是可扩展性。
  • 软件设计总的原则是:开闭原则、面向接口编程(依赖于抽象,不依赖于具体实现),当然还有其它的原则,只要满足这两点,基本就ok。

2、面向对象要点总结

  • 继承是为了重用和扩展功能,子类可以覆盖父类里的方法,体现了开闭原则中的开
  • 接口是一种标准,它主要用于扩展新类,体现了开闭原则中的开
  • 继承和接口都是is-a的关系,表示xx是一种x
  • 抽象类可以实现接口,它的作用有两点:
    • 可以实现部分接口方法,里面可以没有抽象方法(实现接口方法),子类又可以实现接口方法(重载)
    • 实现接口同时又具有接口的引用,是为对象增加功能


  • 对象之间要区分关系:继承、实现、引用(组合)关系,通过组合可以减少类爆炸,分析有哪些对象,再看对象间的关系,注意是同一层的关系还是上下层的关系。

3、最基础的设计模式(模板&策略)

  • 模板设计模式:固定算法步骤,延迟到子类中实现
  • 策略设计模式:算法策略可以替换

一个是用继承(模板),一个是用组合(策略)。其实策略模式是一种经典的模式,对接口引用可以扩展多个策略实现(组合+接口)。

4、有点意思的结构模式之装饰模式

结构模式中最有意思的是装饰模式,它是为对象动态地增加附属功能,来分析分析这个设计模式。

从需求上看,至少有两个对象:一个是被装饰对象,另一个是装饰对象。增加功能马上想到要用继承来做,简单来说如果用继承来做,会产生类爆炸!我们不能对具体的对象继承,要产生一个与具体对象相同地位的类出来, 这个可以通过抽象类+实现接口+引用接口来实现,所以这个时候整个类图就比较好理解了。大家可以细细体会下。

5、有点意思的行为模式之命令模式

行为模式中比较有意思的模式是命令模式,简单理解是谁下了一个命令让另外一个人来做。

从需求上看,至少有三个对象:一个是命令,一个是下命令的对象,最后一个是执行命令的人。然后来分析它们的依赖关系。

下命令的人是持有命令的,每个命令都会关联到具体的接收者来执行的,大家可以画一画类图。

6、事件模式

发生了某个具体的事件就会执行一段特定的逻辑,如单击鼠标右键会弹出菜单。从这个例子中可以分析出事件模式有三个对象:事件(单击)、事件源(鼠标)、事件监听器(弹出菜单)。事件监听器向事件源注册,同时事件源提供fire 事件的接口(传递事件),这个大家也可以画一画类图。

7、总结

自己学习面向对象和设计模式的感想是一定要对常用的模式进行分析,有哪些对象、对象之间的关系是怎样的,要知道每个类图为什么要那么画,其次学习抽象类和接口的用法,比如接口继承接口、抽象类实现接口,通过例子加深理解,上面的要点总结就是自己所思、所想,希望文章对大家有所帮助,也欢迎各位交流沟通,个人微信手机号:13512717641。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值