![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java架构
文章平均质量分 89
小鲁班跑慢点
不要假装很努力,因为结果不会陪你演戏。
展开
-
(十三)Java架构师成长之路-设计模式:模板方法模式
一.定义 当某个任务的执行步骤固定时,可以将这个步骤封装到一个方法里,这个方法固定不变,子类可以对具体的步骤有不同的实现,也可以使用父类默认的实现。 属于行为型模式 二.写法 封装一个抽象类,定义执行固定步骤任务的方法, public abstract class AbstractTaskTemplate { protected void execute() { step1(); step2(); step3(); }原创 2020-10-18 22:24:06 · 120 阅读 · 0 评论 -
(十二)Java架构师成长之路-设计模式:委派模式
一.定义 委派对象并不知道如何处理请求,它会把任务交给要委托的对象去完成。 属于行为型模式 二.通用写法 举一个boss给员工下发任务的例子,日常生活中boss通常不会给员工直接下发任务,而是由各个部门的领导下发,这个时候领导就可以充当为委派对象。 新建一个EmployeeA类 public class EmployeeA { public void doTask() { System.out.println("员工A执行任务"); } } 新建一个Emp.原创 2020-10-18 22:01:23 · 97 阅读 · 0 评论 -
(十一)Java架构师成长之路-设计模式:桥接模式
一.定义 使用组合的方式,给两个不同维度的功能之间增加一个桥梁 属于结构型模式 二.通用写法 以发送消息为例吧,消息发送有两个维度,一个是消息类型,有邮件消息,短信消息等,另一个是消息紧急程度,有普通消息和加急消息。我们在这两个维度之间增加一个桥梁,来说明桥梁模式如何应用。 新建一个消息类型接口 public interface IMessage { void sendMessage(); } 新建一个邮件消息类,实现这个接口 public class EmailMes...原创 2020-10-18 00:10:37 · 131 阅读 · 0 评论 -
(十)Java架构师成长之路-设计模式:适配器模式
一.定义 在不改变原有代码的情况下,对功能进行适配。 属于结构型模式 二.通用写法 新增一个接口,封装要新增的功能。新建一个适配器继承原有的类并且实现这个新的接口。 原有功能类 public class OriginElectricity { public void output220V() { System.out.println("输出220v..."); } } 需要新增的功能 public interface NewElectricity {原创 2020-10-17 18:34:23 · 83 阅读 · 0 评论 -
(九)Java架构师成长之路-设计模式:组合模式
一.定义 组合模式也叫整体-部分模式,目的是为了实现整体和部分都有一组相同的操作方法。 属于结构型模式 注意区别一下组合和聚合的区别: 组合:各部分组织结构有相同的生命周期,例如人的各个器官和人,人死了器官也就消亡了;文件夹删了里面的文件也没了 聚合:各部分组织结构不具有相同生命周期,一个离开了另一个还能存活,例如桌子和电脑 二.实现 1.组件 抽象组件:一般是一个接口或者抽象类,定义通用的行为 具体组件:实现抽象组件的方法,定制自己的行为 2.通用写法 举一个文件目录的例子吧 定义原创 2020-09-28 17:36:25 · 96 阅读 · 0 评论 -
(八)Java架构师成长之路-设计模式:享元模式
一.定义 享元模式又称轻量级模式,是对象池的一种实现。类似于线程池,可以减少系统的资源消耗,可以对一些对象实现重复利用。 属于结构型模式 二.通用写法 抽象享元组件:一般是一个接口或者抽象类 具体的享元对象:实现抽象享元的行为,有自己的内部状态和外部状态 享元工厂:用于缓存享元对象,里面维护一个单例容器 下面来看一个例子 买火车票的时候可能会有很多个乘客出发地目的地这些信息相同,那么就不需要每次都new一个对象,我们可以使用享元模式,直接从缓存中拿 首先我们定义一个抽象享元接口: pu原创 2020-09-26 23:31:47 · 79 阅读 · 0 评论 -
(七)Java架构师成长之路-设计模式:装饰器模式
一.定义 在不改变原有对象行为的基础上,扩展对象的功能。 属于结构型模式 二.通用写法 一般来说装饰器模式有这么几个功能 Component:抽象组件 ConcreteComponent:具体的组件,也就是被装饰的对象 Decorator:抽象装饰器 ConcreteComponent:具体的装饰器 下面来看一个简单的例子 买煎饼的时候可以加鸡蛋可以加火腿,也可以什么都不加。我们用装饰器模式来模式一下这个场景 首先定义一个抽象组件 public abstract class Pan原创 2020-09-26 17:54:35 · 94 阅读 · 0 评论 -
(六)Java架构师成长之路-设计模式:门面模式
一.定义 创建一个接口来调用其他系统的服务,而不是直接使用客户端调用。 二.代码 以生活中在网上购买商品为例 新建库存服务类 public class StockService { public boolean deduct() { System.out.println("库存扣减成功..."); return true; } } 支付服务 public class PaymentService { public boolean原创 2020-09-14 01:00:46 · 123 阅读 · 0 评论 -
(五)Java架构师成长之路-设计模式:代理模式
一.定义 为其他对象提供一种代理,以便控制对这个对象的访问,起到一种中介的作用。 属于结构型模式 生活中的媒婆、快递小哥、房产中介等等都可以看做是代理模式。 二、详细介绍 代理模式分为两种,一种是静态代理,另一种是动态代理。 静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译,在程序运行前代理类的.class文件就已经存在了,是一种硬 编码的方式。 动态代理:有jdk的动态代理和cglib的动态代理,是通过编译期间动态生成字节码文件来实现。 1.代码实现 静态代理 我们以生原创 2020-09-13 22:46:39 · 162 阅读 · 1 评论 -
(四)Java架构师成长之路-设计模式:工厂模式
本篇主要是简单工厂模式、工厂方法模式和抽象工厂方法模式的学习总结 一.简单工厂模式 1.定义 由一个工厂对象决定创建哪种产品的实例 属于创建型模式,但它不属于23种设计模式之一 2.实现 首先抽象出一个顶层接口(这里课程的行为我们先不管它,不是重点) public interface ICourse { } 创建一个JavaCourse类,实现ICourse接口 public class JavaCourse implements ICourse{ } 创建一个PythonCours原创 2020-09-08 00:14:06 · 102 阅读 · 0 评论 -
(三)Java架构师成长之路-设计模式:建造者模式
一.什么是建造者模式 建造者模式是将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示。 适用于创建一个对象需要很多步骤,而这些步骤顺序又不固定的场景。 属于创建型模式。 二.建造者模式的通用写法 1.先来看一个通用写法吧,我们以课程为例 创建一个课程类,这个类有video,note,ppt三个字段 public class Course { private String video; private String note; private原创 2020-09-06 22:48:51 · 107 阅读 · 0 评论 -
(二)Java架构师成长之路-设计模式:原型模式,浅克隆和深克隆
一.什么是原型模式 原型模式是指原型对象指定创建对象的种类,并通过拷贝这些原型的方式创建新的对象。 调用者不需要知道创建对象的细节,不调用构造函数就能创建对象。 属于创建型模式。 目的是为了减少创建对象的复杂度,提升系统性能,一般是基于二进制流的拷贝。 二.原型模式的通用写法 我们先来看一下原型模式的通用写法 先创建一个顶层接口 public interface IProtoType<T> { // 第一种方法 T clone(); // 第二种方法原创 2020-09-06 16:56:47 · 157 阅读 · 1 评论 -
(一)Java架构师成长之路-设计模式:单例模式
一、什么是单例 确保任何情况下都只有一个实例 二、单例分类 饿汉式单例、懒汉式单例、注册式单例、ThreadLocal单例 接下来我们分别看一下这些单例的写法 1.饿汉式单例 第一种写法: public class LazyHanSingleton { private static LazyHanSingleton instance; private LazyHanSingleton() {} public static LazyHanSingleton get原创 2020-09-06 00:57:41 · 107 阅读 · 0 评论