上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页
摘要: /** * 中介者模式 * @author TMAC-J * 研究了这么多设计模式,觉得无非就是几点: * 1.若两个类有耦合关系,设立一个中间类,处理两个类的关系,把两个类的耦合降低 * 2.面向接口 * 3.在设计时就应当想到如果以后有修改,不要去修改原有类,而要设计成能新添加类去做新功能的架构 * 中介者模式用于两个相互通信的类,相当于一个中间层 * 这里模拟A变量始终是B... 阅读全文
posted @ 2016-12-30 11:43 麦子TMAC 阅读(274) 评论(0) 推荐(0) 编辑
摘要: /** * 访问者模式 * @author TMAC-J * 在客户端和元素之间添加一个访问者 * 当你需要添加一些和元素关系不大的需求时,可以直接放在访问者里面 * 或者是元素之间有一些公共的代码块,你可以把它放在访问者里面,就不用写重复代码了 * 适用于元素数据基本不变,操作不断变化的场景 * 可以不改变元素类,只改变访问者类,个人觉得这个访问者类相当于一个管理器 * 和迭代... 阅读全文
posted @ 2016-12-30 11:07 麦子TMAC 阅读(208) 评论(0) 推荐(0) 编辑
摘要: /** * 状态模式 * @author TMAC-J * 状态模式和策略模式很像,其实仔细研究发现完全不一样 * 策略模式各策略之间没有任何关系,独立的 * 状态模式各状态之间接口方法都是一样的 * 另外一个区别是状态模式主要用于状态经常发生改变的情况 * 策略模式发生在不改变的情况,策略模式一般在CONTEXT初始化时就决定了,并且中途不会改变 * 换句话说,策略模式只是在对... 阅读全文
posted @ 2016-12-29 19:19 麦子TMAC 阅读(366) 评论(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 阅读(255) 评论(0) 推荐(0) 编辑
摘要: /** * 迭代子模式 * @author TMAC-J * 聚合:某一类对象的集合 * 迭代:行为方式,用来处理聚合 * 是一种行为模式,用于将聚合本身和操作聚合的行为分离 * Java中的COLLECT就是一种聚合,Iterator类是一种迭代 * 好处:分开了行为和本身,便于行为的扩展和本身的维护,符合开闭原则 * 分为白盒(宽接口)和黑盒(窄接口) * 白盒:白盒提供了... 阅读全文
posted @ 2016-12-29 11:28 麦子TMAC 阅读(264) 评论(0) 推荐(0) 编辑
摘要: JAVA中抽象类不能实例化,但是却可以写构造方法,为什么呢? 首先第一点:构造方法不能实例化,想象一下,如果可以实例化,那么,实例化的是所有的子类还是具体哪一个? 第二点:为什么可以有构造方法? 看看我们的写法: public ConcreteAggregate(Object[] objs) { s 阅读全文
posted @ 2016-12-29 11:01 麦子TMAC 阅读(7283) 评论(0) 推荐(1) 编辑
摘要: import java.util.ArrayList; import java.util.List; /** * 观察者模式 * @author TMAC-J * 牵一发而动全身来形容观察者模式在合适不过了 * 分为拉模式和推模式,这里不详细说了 */ public class ObserverPattern { interface IObserved{ ... 阅读全文
posted @ 2016-12-28 18:11 麦子TMAC 阅读(190) 评论(0) 推荐(0) 编辑
摘要: /** * 模块模式 * @author TMAC-J * 将一个完整的算法分离,分成不同的模块 * 用于有很多步骤的时候,可能以后这些步骤还会增加,把这些步骤分离 * 将有共性的部分放在抽象类中 * 避免代码重复 * 有利于算法扩展 * 假设这个算法是人,人具有的共性是早上起来穿衣服,吃饭,工作 */ public class TemplateMethod { ... 阅读全文
posted @ 2016-12-28 17:50 麦子TMAC 阅读(197) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 17 下一页