php设计模式--策略模式
策略模式就是将特定的行为封装成一个类,来适应特定的用户某些特定的情况。例如:在面向过程的开发中总是使用if...else.....这种属于硬编码的形式,当有些条件在修改的时候我们还要去调整if else的程序 。现在就来搞一搞策略模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?php interface UserStrategy { function showad(); function showcat(); } class Man implements UserStrategy { function showad() { echo 'macbook' ; } function showcat() { echo 'mac_dev' ; } } class Woman implements UserStrategy { function showad() { echo 'woman_ad' ; } function showcat() { echo 'woman_cat' ; } } class pick { private $_act ; function pickecho() { $this ->_act->showcat(); $this ->_act->showad(); } function setact( $Strategy ) { $this ->_act = $Strategy ; } } $pickclass = new pick(); //针对woman $pickclass ->setact( new Woman()); $pickclass ->pickecho(); echo "<br/>" ; //针对man $pickclass ->setact( new Man()); $pickclass ->pickecho(); |
总结:
1.在代码中需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起;
2.针对接口编程,不针对实现编程;
3.多用组合,少用继承;
4.使用策略模式完成依赖倒置,属于解耦的过程;
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步