java设计模式
人圭日月
未来,加油!
展开
-
代理模式(转载)
https://blog.csdn.net/yangbaggio/article/details/89950200原创 2020-06-01 10:09:32 · 141 阅读 · 0 评论 -
状态模式
状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类 https://blog.csdn.net/liummmin/article/details/105920611 总结归纳就是每个类继承抽象类state , 每个实体类放一个activity,通过构造方法,传递行为 代码实现: package com.longchuang.rongh原创 2020-05-20 22:49:51 · 132 阅读 · 0 评论 -
适配器与组合模式
适配器的优点 有一场景,就是不同的人实现不同的集合 A 使用数组的形式存放集合 B 使用List的方式存放集合 思考如何把两个集合数据很好的放到一块 解决方案:每个方法写一个适配器,调用方直接调用适配器 上面调用java.util中的迭代器进行操作。 上面那个Menu接口,可以解耦 上面的问题是,每当出现一个类,就会出现每当你添加一个菜单,就会修改构造方法和多调用一次printMenu,以下修改 看上去没什么问题了,但是当菜单包含子菜单的时候,问题又出现了。是无法被迭代的 组合模式 允许你将对象组合原创 2020-05-17 20:50:07 · 194 阅读 · 0 评论 -
模板方法模式
设计模式之(模板方法)模板方法在模板方法里实现钩子 模板方法 若有不恰之处,请各位道友指正~ 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤(以下是类图)。 public abstract class CaffeeineBeverage { /** * 这个方法就是模板方法 * 在这个模板...原创 2020-02-11 10:59:48 · 81 阅读 · 0 评论 -
适配器模式
设计模式之(适配器模式)观察者模式外观模式 观察者模式 若有不恰之处,请各位道友指正~ 个人觉得,看懂类图就是学习设计模式的精髓了。 适配器模式 : 将一个类的接口,转换成客户期望的另一个接口。适配器让原本不兼容的类可以合作无闻。 代码展示: public interface Duck { public void quack(); public void fly(); } pu...原创 2020-02-08 14:33:02 · 105 阅读 · 0 评论 -
设计模式8之(命令模式)
设计模式8之(命令模式)命令模式 命令模式 若有不恰之处,请各位道友指正~ 个人觉得,看懂类图就是学习设计模式的精髓了。 策略模式概念 将“请求” 封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持撤销的操作。 根据类图写代码 代码结构 public interface Command { void execute(); } public class ...原创 2019-10-23 21:59:24 · 83 阅读 · 0 评论 -
设计模式7之(工厂模式)
设计模式3之(单例模式)简单工厂 简单工厂 不会设计模式,何以叫java工程师? 若有不恰之处,请各位道友指正~ 争对开闭原则,设计的一种模式。 类图(简单工厂) 场景分析: 1,pizza 店有很多种类的pizza 2,不同用户订购的pizza 不一样 // 推荐 ,一般用于程序中保证会实例化的对象,工具类等 class Singleton1{ private static f...原创 2019-10-19 13:20:28 · 107 阅读 · 0 评论 -
设计模式6之(装饰者模式)
设计模式6之(装饰者模式)观察者模式(设计模式) 观察者模式(设计模式) 若有不恰之处,请各位道友指正~ 个人觉得,看懂类图就是学习设计模式的精髓了。 策略模式概念 动态地将责任链附加到对象上,若要拓展功能,装饰者提供了比继承更有弹性的替代方案 根据类图写代码 代码结构 //饮料 public abstract class Beverage { public String des...原创 2019-10-08 16:46:35 · 94 阅读 · 0 评论 -
设计模式5之(观察者模式)
设计模式5之(观察者模式)观察者模式(设计模式)观察者模式(jdk 提供Observer接口) 观察者模式(设计模式) 若有不恰之处,请各位道友指正~ 个人觉得,看懂类图就是学习设计模式的精髓了。 策略模式概念 定义了对象之间的一对多依赖,这样一来,当一个对象发生改变时,它的所有依赖都可以收到通知,并自动更新 根据类图写代码 代码结构 // 主题 public interface Subj...原创 2019-09-18 22:28:20 · 95 阅读 · 0 评论 -
设计模式4之(策略模式)
设计模式4之(策略模式)策略模式 策略模式 若有不恰之处,请各位道友指正~ 个人觉得,看懂类图就是学习设计模式的精髓了。 策略模式概念 把变化的代码从不变的代码中抽离出来 多用组合/聚合,少用聚合 根据类图写代码 代码结构 //抽象类 public abstract class Duck { //用聚合的方式引用行为 FlyAction flyAction; Swim...原创 2019-09-16 22:13:28 · 124 阅读 · 0 评论 -
设计模式3之(单例模式)
设计模式3之(单例模式)8种单例模式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(非线程安全)懒汉式(线程安全)懒汉式(同步代码块)双重检查(double-check)静态内部类枚举 8种单例模式 不会设计模式,何以叫java工程师? 若有不恰之处,请各位道友指正~ 饿汉式(静态常量) 优点:在类加载的时候就完成了实例化,避免了多线程同步问题 缺点:在类加载的时候就完成实例化,没有达到懒加...原创 2019-09-10 23:57:51 · 76 阅读 · 0 评论 -
设计模式1之(UML图)
设计模式1之(UML图)7大原则UML类图 7大原则 不会设计模式,何以叫java工程师? 若有不恰之处,请各位道友指正~ UML类图 工欲善其事,必先利其器。 UML 一定是设计模式的一把锋利???? 类与类的关系:依赖,泛化(继承),实现,关联关系,聚合,组合 依赖:只要类中用到了对方 泛化:依赖关系的特例 实现:依赖关系的特例 关联关系:具有导航性和多重性(这个解释很迷茫吧~) 聚合:整体和部分的...原创 2019-09-08 23:02:48 · 77 阅读 · 0 评论 -
设计模式2之(7大原则)
设计模式2之(7大原则)7大原则单一职责原则开闭原则里氏替换原则接口隔离原则依赖倒置原则迪米特法则合成复用原则 7大原则 不会设计模式,何以叫java工程师? 若有不恰之处,请各位道友指正~ 单一职责原则 1,降低类的复杂度,一个类只负责一项职责 2,提高类的可读性,可维护性 3,降低变更带来的风险 4,只有类中方法足够少,可以在方法级别上违反单一原则 开闭原则 1,一个软件实体如类,模块和...原创 2019-09-08 22:39:21 · 87 阅读 · 0 评论