摘要: /** * 状态模式 * @author TMAC-J * 状态模式和策略模式很像,其实仔细研究发现完全不一样 * 策略模式各策略之间没有任何关系,独立的 * 状态模式各状态之间接口方法都是一样的 * 另外一个区别是状态模式主要用于状态经常发生改变的情况 * 策略模式发生在不改变的情况,策略模式一般在CONTEXT初始化时就决定了,并且中途不会改变 * 换句话说,策略模式只是在对... 阅读全文
posted @ 2016-12-29 19:19 麦子TMAC 阅读(367) 评论(0) 推荐(0) 编辑
摘要: /** * 备忘录模式 * @author TMAC-J * 用于存储bean的状态 */ public class MementoPattern { public class Memento{ private int lifeValue; private int grade; pub... 阅读全文
posted @ 2016-12-29 16:58 麦子TMAC 阅读(285) 评论(0) 推荐(0) 编辑
摘要: /** * 命令模式 * @author TMAC-J * 将调用者和接受者分离 * 可以将一组命令组合在一起,适合很多命令的时候 */ public class CommandPattern { interface Command{ void excute(); } public class TVReceiver{ ... 阅读全文
posted @ 2016-12-29 16:34 麦子TMAC 阅读(174) 评论(0) 推荐(0) 编辑
摘要: /** * 责任链模式 * @author TMAC-J * 老板讲任务交给CTO,CTO自然不会亲自去做,又把人物分配给项目经理,项目经理再把任务分配给组长,组长再分配给个人 * 如果中途哪个环节出现了问题,比如项目经理请假了,组长直接接上,使得项目更加灵活 */ public class ResponsibleChain { abstract class Hand... 阅读全文
posted @ 2016-12-29 14:37 麦子TMAC 阅读(256) 评论(0) 推荐(0) 编辑
摘要: /** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLLECT就是一种聚合,Iterator类是一种迭代 * 好处:分开了行为和本身,便于行为的扩展和本身的维护,符合开闭原则 * 分为白盒(宽接口)和黑盒(窄接口) * 白盒:白盒提供了... 阅读全文
posted @ 2016-12-29 11:28 麦子TMAC 阅读(267) 评论(0) 推荐(0) 编辑
摘要: JAVA中抽象类不能实例化,但是却可以写构造方法,为什么呢? 首先第一点:构造方法不能实例化,想象一下,如果可以实例化,那么,实例化的是所有的子类还是具体哪一个? 第二点:为什么可以有构造方法? 看看我们的写法: public ConcreteAggregate(Object[] objs) { s 阅读全文
posted @ 2016-12-29 11:01 麦子TMAC 阅读(7299) 评论(0) 推荐(1) 编辑