![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
设计模式
TD。
苟日新,日日新
展开
-
(行为型)设计模式——责任链模式(chainofResponsibility)
ps:责任链模式。模仿如下的场景:有一段信息Msg,在被存入数据库前,需要过滤其中不合法的词语。你可以把一系列的要求分别封装成Filter,然后把这些Filter存入一个List列表之中形成过滤链FilterChain,然后Msg必须经过FilterChain,才能够存入数据库中。代码和类图如下。 1、Filter接口 public interface Filter { public ...原创 2020-03-01 20:17:43 · 214 阅读 · 0 评论 -
(结构型)设计模式——装饰器模式(Decorator)
ps:装饰器模式。模仿如下的场景:孙悟空具有七十二变的本领,我们使用装饰器来模仿孙悟空的七十二变的能力。代码和类图如下。 1、ChangeAble接口 public interface ChangeAble { public void change(); } 2、SunMonkey类 public class SunMonkey implements ChangeAble { ...原创 2020-03-01 14:58:09 · 172 阅读 · 0 评论 -
(行为型)设计模式——中介者模式(Mediator)
ps:中介者模式。模仿如下的场景:中国China,韩国Korea通过WTO进行建交,WTO相当于一个中介者的角色。china通过WTO发出建交意愿,韩国收到后,通过WTO发出愿意建交的意愿。代码和类图如下。 1、Nation抽象类 public abstract class Nation { public abstract String getName(); public abs...原创 2020-02-29 17:41:20 · 141 阅读 · 0 评论 -
(结构型)设计模式——门面模式(Facaed)
ps:在以下讲述门面模式中,模仿的场景如下:我们需要办理一个业务,但是要完成这个业务,我们需要前往三个部门,A部门、B部门、C部门,这样下来十分麻烦。所以我们建立一个门面HandleFacaed,在这门面中,我们聚合A、B、C,所以可以为办理者一次性完成业务。其实这个模式类似于MVC中的控制层。代码和类图如下。 1、Handle接口 public interface Handle { p...原创 2020-02-29 15:56:06 · 265 阅读 · 0 评论 -
(创建型)设计模式——工厂模式(factory)
ps:在以下讲述工厂模式中,模仿的场景如下:我们需要生产Car,建立相对应的CarFactory。使用CarFactory工厂来生产Car,并且可以在生产过程中进行一些处理。类图和代码如下。 1、MoveAble接口 public interface Moveable { void go(); } 2、Car类 public class Car implements Moveabl...原创 2020-02-29 15:00:12 · 136 阅读 · 0 评论 -
(创建型)设计模式——抽象工厂(abstract Factory)
ps:在以下讲述抽象工厂模式中,模仿的场景如下:我们有一个抽象工厂AbstractFactory,是用来创建生产不同产品族的工厂的。产品族中含有三种类型的产品,食物Food,交通工具Vehicle,武器Weapon。从类图中可以看出,AbstracFactory生产出了现代化工厂ModernFactory。然后对产品族具体化,食物具体为面包Bread,交通工具具体为汽车Car,武器具体为AK47,...原创 2020-02-29 14:06:35 · 196 阅读 · 0 评论 -
简单工厂模式(不属于23种设计模式)
ps:在以下讲述工厂模式中,模仿的场景如下:我们有两个类Car和Broom类,我们不直接通过new来获取对象,我们通过一个工厂类Factory来获取想要的对象。类图和代码如下。 1、MoveAble接口 public interface Moveable { void go(); } 2、Car类和Broom类 public class Broom implements Move...原创 2020-02-28 20:36:52 · 382 阅读 · 0 评论 -
(行为型)设计模式——策略模式(strategy)
ps:在以下讲述策略模式中,模仿的场景如下:有一个Dog类,它有两个属性height和weight。现在想利用Sorter类,既可以通过比较height来对Dog进行排序,又可以按照weight对Dog进行排序。类图和代码如下。 1、Comparator接口(此接口为自定义,不是Java 类库中的Comparator接口) public interface Comparator<T> ...原创 2020-02-28 19:56:13 · 123 阅读 · 0 评论 -
(创建型)设计模式——单例模式(singleton)
单例模式有很多种实现,以下介绍5种常见的使用方法,和一种《Effective Java》中提过的一种单例实现方法,但是不常用。 1、饿汉式。缺点:不管有没有使用,在类装载时就已经加载内存中。 /* 饿汉式 缺点:不管用到与否,类装载时就完成实例化 */ public class Mgr01 { //在Mgr01被类加载器load到内存中就调用私有构造方法实例化(迫不及待,所以称为饿汉)...原创 2020-02-26 21:36:43 · 111 阅读 · 0 评论