为了账号安全,请及时绑定邮箱和手机立即绑定

关于如何灵活运用设计模式的问题

/ 猿问

关于如何灵活运用设计模式的问题

慕仰8121524 2018-08-03 22:38:06

去年看过一遍设计模式,最近将一些比较常见的又复习了一遍,但是总感觉还是不能将这23种设计模式做到融会贯通,举一反三,想问各位,如何训练自己将设计模式做到灵活运用,信手拈来的地步?

查看完整描述

2 回答

?
holdtom

设计模式是一群有着丰富编程经验的人根据实际情况,抽象出来的一个模式,所以,你大概得

1.积累足够的编程经验
2.掌握从具体到抽象的能力

这样,你学了设计模式之后,就可以很好的根据实际情况,挑选最优的模式。


查看完整回答
反对 回复 2018-08-06
?
米脂

理解设计模式,不是具体理解设计模式是怎么实现的,而是理解需要某个设计模式存在的场景,或者说某个设计模式是解决什么场景下的问题,这个就要你具备有“场景”的概念,如果没有“场景”也就无从谈起设计模式,所以最重要的在于你要抽象出场景的概念。
还是拿一个具体的例子来说,简单就拿单例模式来说:

单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”

那么单例模式的场景是什么?

首先我们不考虑单不单例的问题,我们认为所有的类都可以衍生出来多个实例,我要用实例的时候就直接衍生,我们总会发现,我们衍生出来的实例会分成2种类型:

  1. 衍生出的实例各个相同

  2. 衍生出的实例都有各自不同的特征

那么对于1的类型,我们不仅要问,有必要每次都衍生出新的实例么?可以不可以只衍生一个实例反复使用呢?

ok,单例的场景出来了,就是要避免衍生出很多个相同的实例,当你遇到这个情况时,你就可以使用单例模式设计。

其他的设计模式都可以通过类似的还原场景来理解,毕竟先是有问题,后有的解决方案。

建立这个场景的概念是需要不断的实践出来的,还没有场景的概念的时候,就先别说设计模式了。


查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 501 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信