HeadFirst设计模式
FromNowOnUntilTheEnd
每日记录
展开
-
设计模式:适配器、外观及模板方法模式
上午:适配器模式和外观模式的所有内容,适配器模式针对一个对象,外观模式针对一群对象适配器:将一个对象包装,改变其接口(如充电头转换器,或实现鸭子类,改变其接口为火鸡的实现方式)装饰者:将一个对象包装,增加新的行为和责任(如实现咖啡类,增加调料西米露、红豆)外观模式:将一群对象包装,简化接口(类似命令模式的宏命令,一键操作)下午:模板方法模式,定义算法的骨架,将实现延迟到子类...原创 2019-05-24 16:15:29 · 247 阅读 · 0 评论 -
设计模式:命令模式
页数/内容 收获 191-206命令模式,例子:遥控器,设置不同按键不同命令 时间:8.25-8.50 命令模式:把“发出请求的对象”和“接受与执行这些请求的对象”分隔开。利用命令对象,把请求(如开灯)封装成一个特定对象(客厅电灯对象)。如果每个按钮都存储一个命令对象,那么当按钮被按下的时候,就可以请命令对象做相...原创 2019-05-24 16:22:56 · 168 阅读 · 0 评论 -
设计模式:状态模式
例子:糖果机器,有四种状态,没有投钱(NO_QUARTER = 1),已经投钱(HAS_QUARTER = 2),卖出糖果(SOLD = 3),糖果售罄(SOLD_OUT = 0),其中卖出糖果状态可以跳转到没有投钱或者糖果售罄状态,所以其实是五种状态的转换解决方法一:①使用实例变量定义状态,如final static int SOLD_OUT = 0②定义初始状态int state ...原创 2019-05-28 16:47:51 · 138 阅读 · 0 评论 -
设计模式:复合模式
首先是各种模式的区分,大概自己筛选了一些关键词策略:封装变化的,算法族,减少if-else工厂:生产需要的特定类型装饰者:添加行为适配器与外观:实现原有接口,方法体却是另一个对象的实现。外观:宏命令,一键设置代理:本地和远程单例:只实例化一次命令:宏命令,指定模板:算法(定义不一样的方法)迭代器与组合:管理,树,节点有子树,不一样的对象然后组合到同一...原创 2019-05-29 14:17:36 · 435 阅读 · 0 评论 -
设计模式:区分所有模式及其分类
各个模式的区分1)装饰者:包装一个对象,以提供新的行为2)状态:封装了基于状态的行为,并使用委托在行为之间切换3)迭代器:在对象的集合之中游走,而不暴露集合的实现4)外观:简化一群类的接口5)策略:封装可以互换的行为,并使用委托来决定要使用哪一个6)代理:包装对象,以控制对此对象的访问7)工厂方法:由子类决定要创建的具体类是哪一个8)适配器:封装对象,并提供不同的接...原创 2019-05-29 16:18:09 · 1064 阅读 · 0 评论