博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6设计模式之策略模式
阅读量:5147 次
发布时间:2019-06-13

本文共 971 字,大约阅读时间需要 3 分钟。

策略模式的本质,也是设计模式的本质,是将易变化的部分分离出去,不管是对象和对象的行为分离,还是对象和对象表现分离等,都遵循。这是最基本的设计原则。然后把他们组合到一起,生成你需要的,不要管那么多设计原则,最终的目的是好维护,易读懂。

class Duck{ constructor(id){ = id; } getid(){ console.log(); }

display(){ console.log(“a nomal duck”); } }

class FlyBefavior{ constructor(wings){ this.wings = wings; } fly(){ console.log(fly with ${ this.wings}!); } }

class QuackBefavior{ constructor(sound){ this.sound = sound; } quack(){ console.log(duck make sound,${this.sound}); } }

class swimBefavior{ constructor(){

} swim(){ console.log(“duck swim in water.”); } }

class MallardDuck extends Duck{ constructor(id){ super(id); this.mallfly = new FlyBefavior(“green wings”); this.mallquack = new QuackBefavior(“gua gua gua”); }

fly(){ this.mallfly.fly(); }

quack(){ this.mallquack.quack() }

display(){ console.log(‘yee,a green head duck.’); } }

var m_duck = new MallardDuck(‘002’);

m_duck.display(); m_duck.getid(); m_duck.fly(); m_duck.quack();

转载于:https://www.cnblogs.com/node-jili/p/10161465.html

你可能感兴趣的文章
在IIS中实现JSP
查看>>
[转载]Meta标签详解
查看>>
springboot 使用devtools 实现热部署
查看>>
forward与redirect的区别
查看>>
网络编程之socket
查看>>
Maven pom项目部署
查看>>
Cognos报表验证(添加字段)
查看>>
学术-物理-维空间:一维空间
查看>>
python-文件读写操作
查看>>
P1129 [ZJOI2007]矩阵游戏 二分图匹配
查看>>
Git 内部原理之 Git 对象哈希
查看>>
Vue中引入TradingView制作K线图
查看>>
爱历史 - 朝代歌
查看>>
【笔记】Cocos2dx学习笔记
查看>>
PHP设计模式之:单例模式
查看>>
Linux查看CPU和内存使用情况总结
查看>>
session丢失问题
查看>>
Python 批量修改root密码
查看>>
WEB服务器:Apache、Tomcat、JBoss、WebLogic、Websphere、IIS的区别与关系
查看>>
虚拟机CentOS设置IP
查看>>