发表于: 2017-09-07 23:14:01
1 844
一、 今天完成的事情
1) 设计模式——适配器模式
适配器模式指的是将某个类的接口转换为客户所需的类型的接口。
也就是说,适配器模式解决的问题是,是的原本由于接口不兼容而不能一起工作、不能统一管理的那些类可以在一起工作、进行统一管理。
打个比方,家庭供电是220V,而手机充电最大能承受的电压是5-10V,如果直接将220v电压用在手机,后果可想而知,但又不能要求供电局应对不同的电器提供相应的电压,这时就有了适配器,好比手机那个电源适配器,改变输出电压。
再打个比方,腾讯家的厨师工作是cook(),程序员工作是program(),司机工作是drive(),不同的职业不同的工作,马总要叫他们开始工作,难道要分别安排?这时适配器的作用就是统一管理它们,直接work()。
代码前提:
有两个职业的接口,分别是厨师和程序员:
QjdCooker类和JdProgrammer类分别实现了它们:
第一种情况:没有适配器
MyTest中执行安排他们工作,需要分别安排:
第二种情况:单适配器
编写一个适配器类,在里面编写work方法,传入一个职业对象,判断它是厨师还是程序员,分别调用它们的方法。
这样就可以一次性安排它们工作了,新的MyTest类:
插入一张图小结:
第三种情况:多适配器
对于已经存在的各类适配器,我们同样希望能对它们进行统一管理,这时我们这可通过适配器接口进行统一管理:
编写一个适配器接口IWorkerAdapter,里面有work方法和supports方法,这里说下supports方法用于判断适配器是否支持传出的对象。
然后厨师职业和程序员职业各有自己的适配器(这里只展示程序员的):
最后看下MyTest中的部分代码:
通过IWorkAdapter这个接口进行多适配器管理
2) 设计模式——模板方法设计模式
模板方法设计模式的定义是:定义一个操作中某种算法的框架,而将一些步骤延迟到子类中模板方法模式使得子类在不改变一个算法结构的前提下,对某些步骤实现个性化定义。
在模板方法设计模式中,存在一个父类。其中包含两类方法:模板方法和步骤方法。
模板方法:即实现某种算法的方法步骤。而这些步骤都是调用的步骤方法完成的。
步骤方法:即完成模板方法的每个阶段性方法。每个步骤方法完成某一特定的、完成总算法的一部分功能。步骤方法有三种类型:抽象方法、最终方法和钩子方法。
抽象方法:要求其子类必须实现的方法。
最终方法:不允许其子类自己实现的方法。
钩子方法:运行其子类自己实现的方法。
下面,以一个“购物”的例子来说明此设计模式。
编写一个Shopping的抽象类。
购物的步骤分为登录账号、购买商品、支付,其相应的模板方法为:
模板方法中调用的每一个方法则为步骤方法。
登录的步骤是固定,所以是最终方法:
购买的步骤不确定的,我们不知道顾客会买什么商品,所以是抽象方法:
支付的步骤也是不确定的,但我们可以设置一个默认支付方式,总不能不让顾客买单吧,所以是钩子方法:
二、 明天计划的事情
1) 恢复正常状态,做深度思考
2) Ssm框架的学习
三、 遇到的问题
四、 收获
1)学习ssm框架前的准备差不多了
评论