定义
抽象工厂模式的定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类
解释
通俗点,抽象工厂模式就是工厂模式的升级版本,抽象工厂类是工厂类的工厂,当业务产生了产品族群,可以通过它获取生产某一个产品的工厂
抽象工厂的角色
思考良久,还是觉得使用一个最经典的案例,代码出...
使用工具
idea + gradle
项目构建
创建空的父项目
创建一
注意此处使用gradle进行项目构建, 选择war,选择gradle,此处我们创建多模块项目,所以父项目并不需要src等目录,因为是笔者刚开始使用gradle,所以几乎每一步都是小心翼翼
创建二
创建三
此时完成了一个空项目,里面具有两个文件...
定义
将一个类的接口转换成客户希望的另外一个接口,从而使两个原本因为不匹配而无法在一起工作的两个类能够在一起工作
适配器模式中的角色
1:目标(Target)角色:这就是所期待得到的接口。
public interface Target{ public void request();}
(2)源(Adaptee)角色:现在需要适配的接口。
public class Adap...
定义
将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性
角色
1:抽象构建(Component)角色该角色定义参加组合对象的共有方法和共有属性,规范一些默认的行为接口
public interface Component{ public void operation();}
2:叶子构建(Leaf)角色该角色是...
问题场景
centos7下安装了docker容器,然后安装好镜像以后运行镜像报错,问题如下:
$ docker run centos echo "hello"
错误日志:/usr/bin/docker-current: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/c425dd16805566df0f9e3f6b2495154d1328a748dab042dc240df2c...
定义
策略模式的定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以相互转换。
策略模式角色
1:环境角色(Context)该角色也叫上下文角色,起到承上启下的作用,屏蔽高层模块对策略、算法的直接访问,它持有一个Strategy类的引用。
public class Context{ private Strategy strategy = null...
定义
观察者模式的定义:定义对象之间一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并且被自动更新。
策略模式角色
一:抽象主题角色(Subject)该角色又称为“被观察者”,可以增加和删除观察者对象。
public interface Subject{ //登记观察者 public void attach(Observ...
死锁实现
public class DeathLockTest { static Integer b = 100; static Integer a = 0; public static void main(String[] args) { new Thread(() -> { synchronized (a){ System.out.println(Thread.currentThread().getName() + ": i locked a"); ...
定义
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示
创建者模式中的角色
1:抽象创建者角色(Builder)该角色用于规范产品的各个组成部分,并且进行抽象,一般独立于应用程序的逻辑
public abstract class Builder{ //抽象方法,设置产品的各个部分 public abstract void s...
定义
用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
原型模式角色
java中内置克隆机制(Object.clone()方法),想要一个类支持克隆,只需要实现Coneable接口,并且重写clone方法
1:客户角色(Client)该角色提出创建对象的请求
public class Client{ public void operation(Prototype ex...