摘要: ##装饰模式 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 考虑这样一个问题: 要求给一个类添加新的方法让其产生新的功能。 通常情况下,我们会为这个类创建一个子类,在子类中添加你需要的新方法。 但现在我们将上述的问题增加一个限定条件:为了不增加这个类的复杂度,如何 阅读全文
posted @ 2020-09-27 22:23 xxgbl 阅读(118) 评论(1) 推荐(0)
摘要: ##策略模式 它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 //提供一个算法的通用接口 interface Strategy{ void Algorithm(); } //具体算法的不同实现 class StrategyA implement 阅读全文
posted @ 2020-09-27 22:22 xxgbl 阅读(131) 评论(0) 推荐(0)
摘要: ##简单工厂模式 首先实现一个计算器控制台程序。 public class Program { public static void main(String[] args) throws Exception{ try { Scanner scanner = new Scanner(System.in 阅读全文
posted @ 2020-09-27 22:21 xxgbl 阅读(145) 评论(0) 推荐(0)
摘要: ##适配器模式 将一个类的接口转换成客户端希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 简单点来说就是:需要的东西就在眼前,但你却不能用,而短时间内你有无法改造它,那么就只能"适配"它。 举个例子: 我的商务笔记本想插网线。但我发现我的商务本没有网线接口。 阅读全文
posted @ 2020-09-27 22:20 xxgbl 阅读(143) 评论(0) 推荐(0)
摘要: ##代理模式 为其他对象提供一种代理以控制对这个对象的访问。 abstract class Subject{ public abstract void Request(); } /* 真实对象和代理都要实现相同的接口。 */ class RealSubject extends Subject{ @O 阅读全文
posted @ 2020-09-27 22:19 xxgbl 阅读(126) 评论(0) 推荐(0)
摘要: ##职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。 下面模拟以下场景:你想向公司领导(经理<总监<总经理)提出请假或者加薪。不过你提出某些请求经理或者总监无权批准,得向总经理上报,让总经理定 阅读全文
posted @ 2020-09-27 22:15 xxgbl 阅读(129) 评论(0) 推荐(0)
摘要: ##工厂模式 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 我们用工厂模式来实现计算器例子: //运算方法的通用接口 public interface Operation { public BigDecimal getResult(BigDecimal 阅读全文
posted @ 2020-09-27 22:14 xxgbl 阅读(159) 评论(0) 推荐(0)