看看用TypeScript怎样实现常见的设计模式,顺便复习一下。
学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想记住就好。
这里尽量用原创的,实际中能碰到的例子来说明模式的特点和用处。
策略模式 Strategy
特点:用组合的方式调用一些算法或逻辑,并且可以根据状态不同而选用不同的算法或逻辑。
用处:对象需要运行时切换算法或逻辑可以考虑使用策略模式。
注意:策略的生成方式。
下面用TypeScript简单实现一个策略模式:
说起策略就想到策略类游戏,年龄大点的可能都玩过War3,人族对兽族时如果侦察到对方不着急升本,用常规万金油打法,那人族就可以出狗男女来一波流。
如果侦察到兽族跳科技并摆下两个兽栏,那对方可能是暴飞龙,人族就要家里补个塔防偷农民,然后出点火枪或二本龙鹰。
class Orc{ private _shenKeJi = false; get shenKeJi(): boolean { // 这里简单用升科技来判断是用常规还是飞龙 return this._shenKeJi; } set shenKeJi(value: boolean){