设计模式
文章平均质量分 78
荼白777
这个作者很懒,什么都没留下…
展开
-
工厂方法模式
概念定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象;工厂方法使一个产品类的实例化延迟到其工厂的子类。别名虚构造器适用性当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将由哪一个帮助子类是代理者这一信息局部化的时候;结构引入场景仍然使用我们在之前简单工厂提到的场景;类图如下代码如下package coffee_factory;public abstract原创 2021-09-06 20:06:40 · 58 阅读 · 0 评论 -
简单工厂模式
引入假设我们现在有一个需求;设计一个咖啡店点餐系统;设计一个咖啡类(Coffee),并定义其两个子类(A咖啡和B咖啡)再设计一个咖啡店类(Store),咖啡店具有点咖啡的功能。如图所示;那么代码如下package simple_factory;public class Store { public Coffee orderCoffee(String coffeeName){ if(coffeeName.equals("coffeeA")){原创 2021-09-06 19:19:27 · 130 阅读 · 0 评论 -
单例设计模式
文章目录是什么适用性结构实现饿汉式实现一实现二懒汉式方式一(线程不安全)方式二(线程安全)方式三(双重检查锁)方式三(双重检查锁 + volatile)方式四(静态内部类)饿汉式补充方式三(枚举)(最推荐使用)可能存在的问题源码例子是什么单例模式属于创建型模式,它提供了一种创建对象的方式;这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建;这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。适用性当类只能有一个实例而且客户可以从一个众所周知原创 2021-09-04 21:01:55 · 117 阅读 · 0 评论 -
设计模式六个原则
一、开闭原则是什么?对扩展开放,对修改关闭;在程序需要业务扩展的时候,不要去修改原有的代码;怎么做?想要达成这样的效果,我们需要使用接口和抽象类;为什么?因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定;当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了;例子比如我们玩英雄联盟,每个英雄都有各种皮肤,可以有皮肤A、皮肤B等等;那么我们按以下方式搭建类,以后出了皮肤C直接实现抽象皮肤类即可完成扩展,不需要修改原有代码;二、里氏代换原则是什原创 2021-08-23 19:08:21 · 164 阅读 · 0 评论 -
关于代理模式粗略理解
代理模式简单来说就是代理对象起到中介的作用流程也就是:使用者 - 代理 - 服务者用图表示则为:好处可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.因为别人写的代码是可以正常运行的,如果随便修改源代码出现bug了就难顶了~因此如果需要修改,可以通过代理的方式来扩展该方法静态代理静态代理在使用时,需要定义接口或者父类,被代理对象与代理对象一起实现相同的接口或者是继承相同父类.例子我们定义一个接口public interface Store { void原创 2020-10-03 18:34:25 · 88 阅读 · 0 评论 -
关于 构建者模式 && 工厂模式 的粗略理解
一、构建者模式好处:把对象的创建细节隐藏,让使用者直接调用方法即可拿到对象我的理解是这样的:我们需要一个对象,那么我们就创建一个批量生产对象的工厂。然后这个工厂交给施工队去执行,我们只需要给施工队图纸即可。比如以下代码//1.读取配置文件InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");//2.创建SqlSessionFactory工厂SqlSessionFactoryBuilder builder = new原创 2020-10-03 17:54:02 · 155 阅读 · 0 评论