2.策略模式(Strategy)
策略模式的角色
环境类:持有策略接口的引用,可以根据不同实现类-根据不同策略获取id<br>
策略接口:生成id策略
雪花策略:雪花算法生成id
递增策略:递增算法生成id
JDK中的public interface Comparator<T>
5.调停者(Mediator)又叫中介者模式<br>
调停者的角色<br>
抽象同事类:Tank项目中的GameObject
具体同事类:Tank项目中的坦克,子弹,爆炸,墙等
抽象中介者:Tank项目没用到,可以将具体中介者中方法抽象,形成抽象中介者
具体中介者:Tank项目中的GameModel。定义一个List管理同事,协调各同事之间的交互
6.门面模式(Facade)
Tank项目从TankFrame角度看,GameModel就是门面
8.责任链模式(Chain Of Responsibility)
Tank项目中的例子,类似servlet的filter
抽象处理者
Tank项目中的Collider碰撞器接口
Tank项目中的ColliderChain类,包含一个List和add方法,实现了Collider接口
具体处理者:Tank项目中的【TankTankCollider】【BulletTankCollider】等
客户类:创建一个ColliderChain,直接调用ColliderChain的collider(o1,o2)方法
责任链的角色
抽象处理者:定义一个处理请求的接口,包含抽象处理方法和一个后继连接
具体处理者:实现抽象处理者的处理方法,判断能否处理本次请求,如果可以处理请求则处理,否则将该请求转给它的后继者。
客户类角色:创建处理链,并向链头的具体处理者对象提交请求,它不关心处理细节和请求的传递过程。