Jul
7
星矢:动画片《圣斗士星矢》的男猪脚,超级小强,怎么打也打不死。
雅典娜:动画片《圣斗士星矢》的女猪脚,自称女神,手下有88个男人为他卖命。
状态模式:为了方便的控制状态的变化,避免一堆IF/ELSE,以及状态规则改变的时避免代码改动的混乱。
观察者模式:一个被观察者一动,多个观察者跟着动,经常用于界面UI。
话说星矢和很强的某斗士甲对打,雅典娜在一边看,星矢总是挨揍,每次挨揍完之后星矢的状态总是会发生一些变化:
正常--挨打--瀕死--挨打--小宇宙爆发--挨打--瀕死--挨打--女神护体--挨打(星矢无敌了,打也没用,战斗结束)--正常
以上状态转变用状态模式来表现,一个Saiya类代表星矢,一个SaiyaState代表他的状态,SaiyaState下面有多个子类,分别代表星矢的多种状态,如正常NORMAL、瀕死DYING、小宇宙爆发UNIVERSE、女神护体GODDESS,即把状态抽象成对象,在每种状态里面实现被打的时候所需要更改的状态,这样就避免了每次被打都要进行一次IF/ELSE的判断。
雅典娜:动画片《圣斗士星矢》的女猪脚,自称女神,手下有88个男人为他卖命。
状态模式:为了方便的控制状态的变化,避免一堆IF/ELSE,以及状态规则改变的时避免代码改动的混乱。
观察者模式:一个被观察者一动,多个观察者跟着动,经常用于界面UI。
话说星矢和很强的某斗士甲对打,雅典娜在一边看,星矢总是挨揍,每次挨揍完之后星矢的状态总是会发生一些变化:
正常--挨打--瀕死--挨打--小宇宙爆发--挨打--瀕死--挨打--女神护体--挨打(星矢无敌了,打也没用,战斗结束)--正常
以上状态转变用状态模式来表现,一个Saiya类代表星矢,一个SaiyaState代表他的状态,SaiyaState下面有多个子类,分别代表星矢的多种状态,如正常NORMAL、瀕死DYING、小宇宙爆发UNIVERSE、女神护体GODDESS,即把状态抽象成对象,在每种状态里面实现被打的时候所需要更改的状态,这样就避免了每次被打都要进行一次IF/ELSE的判断。
Jun
24
话说有一个银行,有三个窗口,但是每个窗口的智能都是一样的,即都能办理所有的业务。因此每位来银行办理业务的人只要排队就是了,排到你了,就向业务员说明你要办理的业务,然后业务员根据你的业务选择不同的单据,打开不同的账本。……。
业务员此时典型的工作流程是:
业务员此时典型的工作流程是:
if (service instanceof Saving){
//存款
......
}else if (service instanceof Draw){
//提款
......
}else if (service instanceof Fund){
//基金
......
}
......
//存款
......
}else if (service instanceof Draw){
//提款
......
}else if (service instanceof Fund){
//基金
......
}
......
Jun
12
Jun
11
缺省适配器模式和模板方法模式。
缺省适配器模式:当一个接口有很都方法时,所有的实现类都需要实现该接口的所有方法。即使不需要的方法也需要空实现。这时就需要一个适配器类。该适配器类主要是实现该接口的所有方法(一般都空实现)。给真正的子类带来方便。
模板方法模式:父类定义了几个方法。并规定了这几个方法的具体执行流程(哪个方法先执行,哪个方法后执行),然后其子类实现这些方法。
缺省适配器模式:当一个接口有很都方法时,所有的实现类都需要实现该接口的所有方法。即使不需要的方法也需要空实现。这时就需要一个适配器类。该适配器类主要是实现该接口的所有方法(一般都空实现)。给真正的子类带来方便。
模板方法模式:父类定义了几个方法。并规定了这几个方法的具体执行流程(哪个方法先执行,哪个方法后执行),然后其子类实现这些方法。
Jun
10
Jun
9
适配器(Adapter)模式也叫包装模式,主要有两种实现形式:
A:类适配器模式
B:对象适配器模式
都有三种角色
1:Target:供客户端调用
2:Adaptee:具体调用角色
3:Adapter:包装角色
A:类适配器模式
B:对象适配器模式
都有三种角色
1:Target:供客户端调用
2:Adaptee:具体调用角色
3:Adapter:包装角色
Jun
5
装饰(Decorator)模式:也叫包装模式,Adaptor模式也可以叫包装模式,不过有本质的区别,Adaptor模式没有使原有功能增强
Decorator模式使原有功能增强,而且不是通过子类来实现功能增强的。
装饰模式主要特色:
1.用来扩展特定对象的功能,不是扩充某个类的功能。
2.不需要子类,防止由于子类而导致的复杂和混乱
3.对于一个给定的对象,同事可能有不同的装饰对象,客户端可以通过它的需要选择合适的装饰对象
java.io包下类大量使用到装饰模式。
装饰模式主要角色
1.抽象构件角色:给出一个抽象接口,以规范准备接受附加责任的对象
2.具体构件角色:定义一个将要接收附加责任的类
3.装饰角色:持有一个构件对象的实例,并定义一个与抽象构件接口一致的接口
4.具体装饰角色:负责给构件对象"贴上"附加的责任
Decorator模式使原有功能增强,而且不是通过子类来实现功能增强的。
装饰模式主要特色:
1.用来扩展特定对象的功能,不是扩充某个类的功能。
2.不需要子类,防止由于子类而导致的复杂和混乱
3.对于一个给定的对象,同事可能有不同的装饰对象,客户端可以通过它的需要选择合适的装饰对象
java.io包下类大量使用到装饰模式。
装饰模式主要角色
1.抽象构件角色:给出一个抽象接口,以规范准备接受附加责任的对象
2.具体构件角色:定义一个将要接收附加责任的类
3.装饰角色:持有一个构件对象的实例,并定义一个与抽象构件接口一致的接口
4.具体装饰角色:负责给构件对象"贴上"附加的责任




