
设计模式
zhaoy1121
这个作者很懒,什么都没留下…
展开
-
设计模式-策略模式
策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以相互转换,此模式让算法的变化,不会影响到使用算法的客户。package com.strategy;public abstract class Strategy { public abstract void algorithmInterface();}package com.strategy;public class ConcreteStrategyA extends St...原创 2021-08-08 21:54:09 · 171 阅读 · 0 评论 -
设计模式-中介者模式
中介者模式(Mediator),用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。package com.mediator;public abstract class Mediator { public abstract void send(String message, Colleague colleague);}package com.mediator;public ...原创 2021-08-01 22:07:31 · 201 阅读 · 0 评论 -
设计模式-迭代器模式
迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 当需要访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。package com.iterator;public abstract class Iterator { public abstract Object first(); public abstract Object next(); public abstract ...原创 2021-07-29 23:32:11 · 208 阅读 · 0 评论 -
设计模式-命令模式
命令模式(Command),将一个请求封装为一个对象,从而使你不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。package com.command;public class Receiver { public void Action() { System.out.println("执行请求!"); }}package com.command;public abstract class Command { Receiver rec...原创 2021-07-24 15:35:24 · 175 阅读 · 0 评论 -
设计模式-代理模式
代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。代理分为静态代理和动态代理,动态代理还可以分为JDK代理和cglib代理。package com.proxy;public abstract class Subject { public abstract void request();}package com.proxy;public class RealSubject extends Subject { @Overrid...原创 2021-07-18 16:01:19 · 123 阅读 · 0 评论 -
设计模式-享元模式
享元模式:运用共享技术有效地支持大量细粒度的对象。package com.flyweight;public abstract class Flyweight { public abstract void operation(int extrinsicstate);}package com.flyweight;public class ConcreteFlyweight extends Flyweight{ @Override public ...原创 2021-07-12 23:57:20 · 159 阅读 · 0 评论 -
设计模式-外观模式
外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。package com.facade;public class SubSustemOne { public void MethodOne() { System.out.println("子系统方法一"); }}package com.facade;public class SubSustemTwo { public void Met...原创 2021-07-11 19:43:39 · 115 阅读 · 0 评论 -
设计模式-组合模式
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。package com.Composite;public abstract class Component { public String name; public Component(String name) { this.name = name; } public abstract void add(Component c); public ab...原创 2021-07-11 12:56:41 · 218 阅读 · 0 评论 -
设计模式-装饰模式
装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者比生成子类更灵活。package com.decorator;public abstract class Component { public abstract void operation();}package com.decorator;public class ConcreteComponent extends Component{ @Overri...原创 2021-07-10 22:23:03 · 140 阅读 · 0 评论 -
设计模式-桥接模式
桥接模式:实现系统可能有多个角度分类,每一种分类都有可能变化,那么就把这种多角度分离独立让他们独立变化,减少它们之间的耦合。实现了抽象和实现部分的分离,从而极大的提供了系统的灵活性,让抽象部分和实现部分独立开来,这有助于系统进行分层设计,从而产生更好的结构化系统。对于系统的高层部分,只需要知道抽象部分和实现部分的接口就可以了,其他的都分由具体业务来完成。桥接模式替代多层继承方案,可以减少子类,降低系统的管理和维护成本。桥接模式的引入增加了系统的理解和设计难度,由于聚合关联关系建立在抽象层,要...原创 2021-07-05 22:33:47 · 167 阅读 · 0 评论 -
设计模式-适配器模式
在系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器模式,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。适配器的三种实现方式: 1、类适配器。 2、对象适配器。 3、接口适配器。准备环境代码package com.adapter;public class PowerSupply { protected int outputVol...原创 2021-07-04 15:49:03 · 143 阅读 · 0 评论 -
设计模式-建造者模式
作用:用于构建复杂对象,使用者不需要知道构建对象的过程和细节。优点: 1、封装性好,构建和表示分离。 2、扩展性好,各个具体的建造者相互独立,有利于系统的解耦。 3、使用者不需要知道构建的过程和细节。缺点: 1、如果产品内部发生变化,建造者也需要同步修改,后期维护成本大。主要角色: 1、产品(Product):包含多个组成部件的复杂对象,由具体建造者来创建其各个零部件。 2、抽象建造者(B...原创 2021-07-03 17:20:00 · 141 阅读 · 0 评论 -
设计模式-原型模式
名称:原型设计模式作用:创建内部属性相同的对象种类: 1:浅拷贝:内部的值类型和字符串类型都可以复制成功 方式:实现Cloneable接口,实现clone方法 2:深拷贝:除了内部的值类型和字符串类型,引用类型也能复制成功 方式: 1、实现Cloneable接口,实现clone方法 2、序列化浅拷贝(实现Cloneable接口,实现clone方法)package com.prototype;/*...原创 2021-06-29 22:05:19 · 171 阅读 · 0 评论 -
设计模式-工厂模式
作用:创建同一种类的对象。优点:解耦。1:简单工程模式package com.factory.simple;/** * 抽象类,表示鸟这一类别。 * @author zhaoyu * */public abstract class Bird { private String name; public String getName() { return name; } public void setName(String name) { this.name = nam原创 2021-06-24 23:14:21 · 135 阅读 · 0 评论