文章分类 -  Java设计模式

摘要:单例模式 业务场景: 待完善 一、懒汉式 public class SingletonLazy { /** * 创建当前类私有化实例对象 */ private static SingletonLazy instance; /** * 设置构造函数私有化,使当前类不能被实例化 */ private S 阅读全文
posted @ 2022-01-14 18:06 努力的Daimon
摘要:抽象工厂模式 在简单工厂模式的基础上,做深层思考: 一个接口,根据不同业务编码,我们建了一个工厂类来处理 如果有多个接口都是类似情况呢?有没有办法合并一下? 这个时候就要用到抽象工厂模式了 一、创建另一个业务接口,并定义一个业务实现方法 public interface OtherService { 阅读全文
posted @ 2022-01-10 16:49 努力的Daimon
摘要:简单工厂模式 业务场景: 单一接口,根据业务编码传参进行不同处理方式 少量业务编码基本都是用条件判断做一下简单处理,但考虑到业务后期发展,业务编码会越来越多,很容易出现 if else 嵌套地狱 这种情况,我们就考虑使用工厂模式来对业务代码进行拆分,使不同处理逻辑划分更清晰 一、创建业务接口,并定义 阅读全文
posted @ 2022-01-10 14:50 努力的Daimon
摘要:建造者模式与装饰器模式区别: 装饰器模式是针对相同的处理方案,添加额外装饰 建造者模式是针对固有的多种处理方式,选择性组合起来达成不同的结果 建造者模式的关键,是将复杂对象的构建过程与它本身的表示分离,使得同样的构建过程可以创建不同的表示 以饭店商品出单为例: 1. 先定义一个商品类 public 阅读全文
posted @ 2021-12-31 16:25 努力的Daimon
摘要:模式介绍 与代理模式的中介性质有所不同的是,装饰器模式是为了扩展对象的功能,可以针对对象做更为细化的操作 装饰器模式大致分为四种核心角色: 1. Component接口 Component接口相当于接口根本的方法,比如现在有一个员工接口,员工基本职能为工作: public interface Sta 阅读全文
posted @ 2021-12-30 16:37 努力的Daimon
摘要:继上一章通过静态代理解决问题后,有了新的问题: 如果不止一个业务类需要做日志、事务等额外操作,我们都要给它新增代理类吗? 显然不是这样,我们想要灵活运用代理,需要用到新的方案:动态代理 所谓动态代理,就是在程序运行时,动态的为被代理对象生成代理类,需要借助编程语言的反射特性 Java为我们提供了十分 阅读全文
posted @ 2021-12-30 11:10 努力的Daimon
摘要:业务场景:学生信息新增与删除 public interface StudentService { /** * 新增学生 */ void insertStudent(); /** * 删除学生 */ void deleteStudent(); } public class StudentService 阅读全文
posted @ 2021-12-30 10:56 努力的Daimon