![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
常用的设计模式
dragon@oo
糟糕的坚持也好过放弃
展开
-
观察者模式Observer示例demo
介绍在对象之间定义一对多依赖,当一个对象改变状态,依赖它的对象都会收到通知,并作出相应的操作示例demo背景:订单状态修改了之后,订单和用户信息随之更新订单信息对象:/** * 订单信息 **/@Data@AllArgsConstructorpublic class OrderInfo implements Serializable { private st...原创 2019-07-17 14:25:25 · 274 阅读 · 0 评论 -
适配器Adapter示例demo
介绍将一个类的接口转换成客户期望的另一个接口,适配器让原本不兼容的类可以合作无间。适配器模式属于补偿模式,专用来在系统后期扩展、修改时使用示例demo背景:让原本只有安卓充电接口的旅店同样支持ios接口充电一、对象适配器安卓充电:/** * 安卓充电接口 **/public interface AndroidCharge { /** * 充电方法...原创 2019-07-16 18:17:55 · 796 阅读 · 0 评论 -
监听器模式Listener和责任链模式Filter示例demo
介绍观察者模式:在对象之间定义一对多依赖,当一个对象改变状态,依赖它的对象都会收到通知,并作出相应的操作责任链模式:当需要多个对象都有机会处理请求时可以考虑使用责任链模式示例demo背景:账户创建、创建订单、更新订单业务处理context上下文,承载数据传输:/** * 上下文接口 **/public interface Context {}/** * 基...原创 2019-07-16 16:29:58 · 443 阅读 · 0 评论 -
模板模式template示例demo
介绍定义了算法的固定步骤(不可改变),但是把这些步骤的具体实现内容交给子类来决定,模板方法模式提供了一种代码复用的重要技巧示例demo背景:朋友请客吃饭的固定流程(点菜下单 -> 烧饭 -> 吃饭 -> 买单 -> 娱乐)请客吃饭:/** * 请客吃饭 * <p> * 请客步骤 * 1、下单 * 2、烧饭 * 3、吃饭 * 4...原创 2019-07-16 16:04:46 · 679 阅读 · 0 评论 -
策略模式strategy示例demo
介绍针对算法做的封装,策略模式仅仅封装算法。准备一组算法,并将每一个算法封装起来,使得它们可以互换。策略模式并不决定在何时使用何种算法,在什么情况下使用哪种算法是由客户端决定的示例demo背景:不同的会员有不同的折扣打折会员策略接口:@FunctionalInterfacepublic interface MemberStrategy { /** * 计算...原创 2019-07-16 15:47:48 · 189 阅读 · 0 评论 -
工厂模式Factory示例demo
介绍用于封装对象的创建,定义了一个创建对象的接口,但由子类决定要实例化哪一个类示例demo背景:根据不同参数决定创建不同的连接连接工厂:public class ConnectionFactory { private static final String DEFAULT_HOST = "localhost"; private static final Int...原创 2019-07-16 15:40:00 · 835 阅读 · 0 评论 -
建造者builder示例demo
介绍封装复杂对象的创建过程示例demo背景:封装创建连接的过程建造者:public class ConnectionBuilder { private String host; private Integer port; private ConnectionBuilder() { } public static Connection...原创 2019-07-16 15:31:54 · 250 阅读 · 0 评论 -
装饰者模式示例demo
介绍在不改变类的源代码或者不使用继承类的基础上动态地为一个对象增加新的功能(OCP原则,即开闭原则)示例demo背景:在火锅中任意加自己喜欢吃的菜品装饰者抽象类:public abstract class DecoratorComponent { /** * 加菜 */ public abstract void addGreens();}...原创 2019-07-16 15:14:28 · 478 阅读 · 0 评论 -
外观模式Facade示例demo
介绍提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用示例demo背景:对外提供订单下单和出单两个接口各种子系统账户子系统:public class Account { public void createAccount() { System.out.println("创建账户"); } p...原创 2019-07-16 14:50:58 · 627 阅读 · 0 评论 -
单例模式
单例模式定义:单例模式顾名思义就是只有一个对象被创建,大家全部共享这个对象分类:常见的单例模式分为饿汉式、懒汉式、双重校验锁、静态内部类和枚举五种单例模式详解共同点:构造方法都是私有的,这样做保证其他类不能实例化此类一、饿汉式场景:适用于单例占用内存较小,在初始化时就会被用到缺点:单例没有用到也会被创建,而且在类加载之后就被创建,内存浪费demo示例:/**...原创 2019-06-20 15:26:20 · 113 阅读 · 0 评论 -
设计模式
设计模式介绍编程时候代码的漂亮与否取决于设计模式的使用,设计模式有23种,大致可以分为创建型(单例模式、工厂模式、原型模式、建造者模式)、结构型(适配器模式、装饰者模式、桥接模式、外观模式、代理模式、享元模式)和行为型(策略模式、模板模式、观察者模式、状态模式、迭代器模式、命令模式、责任链模式、解释器模式、中介者模式、备忘录模式)3类,下面我们对一些常见的设计模式做下简介:一、创建型模...原创 2019-06-20 14:15:20 · 359 阅读 · 0 评论