设计模式
程序猿的酒
只有拼尽全力,才能毫不费力!
展开
-
设计模式|第七篇:模板方法设计模式
目录1. 概念2.实现步骤3.案例4.案例结构图1. 概念模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤2.实现步骤定义抽象类,类中定义算法骨架,公有逻辑抽象类实现,其它私有逻辑延迟至子类实现子类继承抽象类,实现具体算法3.案例本例以遇近做的需求数据迁移为例,有两种类型数据要做迁移,其中...原创 2019-10-22 15:22:10 · 105 阅读 · 0 评论 -
设计模式|第六篇:建造者设计模式
目录1.实现步骤2.案例3.测试使用4.使用Lombok简化1.实现步骤构造函数私有化创建静态Builder对象,用于处理具体属性2.案例public class User { private String name; private String password; private String nickName; private int age; pr...原创 2019-10-22 13:31:51 · 132 阅读 · 0 评论 -
设计模式|第五篇:单例设计模式
目录1.概念2.实现步骤3.常见单例模式4.存在问题1.概念每次只会创建同一个实例2.实现步骤构造函数私有化对外暴露公共创建对象方式3.常见单例模式(1) 饿汉式 public class User{ private User(){ } private static User instance = new User(); public s...原创 2019-10-22 11:25:30 · 87 阅读 · 0 评论 -
设计模式|第四篇:策略设计模式
目录1.概念2.实现步骤3.案例1.概念定义一系列算法的方法,所有这些算法完成的都是相同的工作但实现不同2.实现步骤定义抽象策略类,同时定义算法定义具体抽象类,用于实现定义的算法定义content类,用于算法统一调用定义工厂类,利用反射根据传入对象不同从而完成不同方法调用3.案例定义抽象策略类 public interface AlgorithmStrategy {...原创 2019-10-22 10:47:20 · 94 阅读 · 0 评论 -
设计模式|第三篇:抽象工厂模式
目录1. 概念1. 概念前边我们讲述了简单工厂模式(通过传入参数,获取所需对象),工厂模式(创建每个对象工厂,所有对象均从各自对象工厂中生产),但实际生产中会存在如下情况,还是以生产汽车为例:汽车A汽车B发动机:A发动机发动机:B发动机车标:A车标车标:B车标都是生产汽车,但A汽车=A发动机+A车标,B发动机=B发动机+B车标,如果使用工厂模式,我们需要创...原创 2019-10-14 14:02:28 · 103 阅读 · 0 评论 -
设计模式|第二篇:工厂模式
目录1.概念:2.案例1.概念:回顾第一篇中简单工厂模式,当我们需要增加一个计算乘方的类时,我们需要增加乘方类实现Arithmetic,同时修改工厂类ArithmeticFactory,这样就违背了"对修改关闭,对扩展开放"的原则,在此我们引入工厂模式。工厂模式:每个要创建的类都对应一个工厂类,所有具体的工厂类都实现自统一的工厂类,当需要扩展对象时,则增加新对象工厂类即可。2.案例本...原创 2019-10-12 15:24:51 · 108 阅读 · 0 评论 -
设计模式|第一篇:简单工厂模式
目录1. 概念:2.案例1. 概念:简单工厂模式:创建对象工厂(用于生产对象),根据传入条件返回不同的对象2.案例本案例以计算器为例,主要实现逻辑有如下几步:1.根据用户传入的运算符,获取所需要的运算对象2.根据获得的运算对像调用计算方法创建计算对象父类public interface Arithmetic { double calute(double arg1...原创 2019-10-12 09:44:33 · 118 阅读 · 0 评论