one 策略模式 strategy
2024-10-09 23:41:42
--读书笔记
定义
策略模式--定义算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(看不懂的话,往下,有人话版/我自己的解释)
相关原则
> 1,变化单独封装
2,多用组合,少用继承(Go中只有组合)
3,**针对接口编程,不针对实现编程**
>> 意思大概是,在结构部分的代码里,不要出现实例化的东西?(未必对)
> 设计系统的时候,首先要熟悉已有的设计模式,最终要能够熟练运用;如果有时候找不到设计模式,则采用OO的原则。**要诀:随时想到系统以后可能需要的变化以及应该变化的原则**
类图
名白
> 设计模式可以把个人的思考层次提高到模式层面,脱离琐碎的对象。
> 策略模式,把类的行为封装为 一个一个的,独立的,可替换的算法,放到其他类里。
>> 具体:用内部接口,替换内部类,加一个setter方法,使该属性可替换,而放方法的类去实现这个接口(上转型)。再美其名曰:运行时多态。
> 如面试被问: 接口的作用?
>> 可从四个方面回答:
1,抽象相关的设计时用
2,实现多态,运行时的动态
3,实现弹性的设计。
4,多人开发时的 约定和标准。
> 深入的探究下:所谓的用接口实现多继承的,是怎么搞的?
> 叫法升级: 行为-->算法。
最新文章
- undefined function openssl_x509_read
- Android事件处理--读书笔记
- initial pointer [expert c]
- Qt5制作鼠标悬停显示Hint的ToolTip
- disruptor流程
- linux在线预览pdf文件开发思路
- shell与export命令
- eclipse java formater 配置详解
- BZOJ3165[Heoi2013]Segment——李超线段树
- MySQL 之 库操作,表操作
- Caffe多线程环境下检测缓慢问题
- Linux input子系统编程、分析与模板
- TL-WAR1200L V1.0升级软件20170609
- @PathVariable与@RequestParam的区别
- 阿里云liunx-ubuntu安装中文
- 关于Mybatis 的 Mapped Statements collection does not contain value for 异常 解决方案
- QString::arg()//用字符串变量参数依次替代字符串中最小数值
- 排序算法之直接插入排序Java实现
- springboot-1-介绍
- sql语句优化 (转)