深入浅出设计模式(Design Pattern)----策略模式(Strategy Pattern)

本文通过一个故事深入浅出地介绍了设计模式中的策略模式。最初,小明的公司开发了一个模拟人物应用,后来为了增加人物的动态展示,如跑步,引入了run()方法。然而,当遇到特殊人物如跛脚人时,单纯使用继承导致了问题。小明尝试了覆盖方法和使用接口,但仍有改进空间。最后,通过引入策略模式,将可能变化的行为(如walk())独立成接口,实现了代码的灵活性和复用性。
摘要由CSDN通过智能技术生成

深入浅出设计模式(Design Pattern)----策略模式(Strategy Pattern)

这是设计模式开篇,我觉得策略模式真的对我来说是一种醍醐灌顶的感觉.让我感觉:哇,真的诶,用这种设计模式真的可以方便很多,代码的层次结构更清晰.下面就让我们开始吧.策略模式:策略模式定义了算法族,分别将其封装起来,让他们之间可以相互转换,这个模式使得算法的变化独立于使用算法的客体. 但是严谨的定义通常是难以理解的,接下来我们通过一个故事,来深刻理解这种设计模式的使用场景和强大之处吧(以下例子来自Head First Design Pattern 但是我会用自己的语言诠释一遍,并加上自己的理解).

前面三张图的子类搞错了(有一个子类应该是Man);

1.先从简单的模拟人物的应用开始

假如小明的公司开发一个应用来根据用户的要求来生成各种模拟人物(奇迹暖暖?).用户填写参数然后就可以生成各种人物形象.这个系统使用了标准的OO技术,设计了一个Human超类(Superclass),然后让不同的人物来继承这个超类.
在这里插入图片描述

看起来没什么难的?是吧.

2.现在我们得让人跑起来

公司现在发现,做这种类型应用的人太多了,光是让用户可以看到外表(display())这件事太简单,很多应用都可以,所有决定让人物可以跑起来更加立体的展示人物,这样子就可以吸引更多用户了.

小明于是拍脑袋一想,这还不简单吗?我只需要在超类Human里面加上一个run()方法,让所有的人物都可以跑起来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值