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