
设计模式
长春小霸王
1、蜘蛛信息,技术副总经理
2、
java( springboot、springcloud(Eureka、Ribbon、Feign、Hystrix、Zuul、TX-LCN、OAuth2))、c#+devexpress、net(MVC、core3、微服务(Consul、Ocelot、CAP))、前端(vue、uni-app)、halcon视觉、数据库(mysql、mssql、redis、MongoDB、sqlite)、RabbitMQ
展开
-
JAVA设计模式(23)行为型-迭代器模式
解析器模式是一种行为型设计模式。其思想是:给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。//@author: v: jbossjfpublic interface Expression { double interpreter(HashMap<String, Double> var); // 声明一个解析操作}public class VarExp implements Expression { private St原创 2021-10-16 19:00:46 · 75 阅读 · 0 评论 -
JAVA设计模式(22)行为型-迭代器模式
迭代器模式又叫游标(Cursor)模式,是对象的行为模式。迭代器模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。//@author: v: jbossjfpublic abstract class Aggregate { /** * 工厂方法,创建相应迭代子对象的接口 */ public abstract Iterator createIterator();}public class Concr原创 2021-10-15 15:42:38 · 74 阅读 · 0 评论 -
JAVA设计模式(21)行为型-备忘录模式
备忘录模式是指在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。步骤 1创建 Memento 类。//@author: v: jbossjfpublic class Memento { private String state; public Memento(String state){ this.state = state; } public String getState..原创 2021-10-15 15:38:33 · 75 阅读 · 0 评论 -
JAVA设计模式(20)行为型-调停者模式
调停者犹如第三方中介一般,将所有的类与类之间的引用都导向调停者类,所有类的请求,一致发向调停者,由调停者再发向目标类,这样原本复杂的网状的类关系,变成了简单的星型类关系,调停者类位于核心,所有其他类位于外围,指向调停者。//@author: v: jbossjf/** * 调停者接口 */public interface Mediator { void change(String message,ZhiYuan zhiyuan,String nname);}/** * 职员接原创 2021-10-15 15:33:17 · 89 阅读 · 0 评论 -
JAVA设计模式(19)行为型-访问者模式
访问者模式,是行为型设计模式之一。访问者模式是一种将数据操作与数据结构分离的设计模式,它可以算是 23 中设计模式中最复杂的一个,但它的使用频率并不是很高,大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是需要使用它了。//@author: v: jbossjf//单个单子的接口(相当于Element)public interface Bill { void accept(AccountBookViewer viewer); }//消费的单子publ原创 2021-10-15 15:29:25 · 83 阅读 · 0 评论 -
JAVA设计模式(18)行为型-命令模式
将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请 求排队或者记录请求日志,可以提供命令的撤销和恢复功能。//@author v: jbossjf//通用Receiver类public abstract class Receiver { public abstract void doSomething();}//具体Receiver类public class ConcreteReciver1 extends Receiver{ //每个接收者都必须处理一原创 2021-10-15 11:22:02 · 77 阅读 · 0 评论 -
JAVA设计模式(17)行为型-责任链模式
职责链模式(称责任链模式)将请求的处理对象像一条长链一般组合起来,形成一条对象链。请求并不知道具体执行请求的对象是哪一个,这样就实现了请求与处理对象之间的解耦。领导抽象类:Lingdao//@author v: jbossjfpublic abstract class Lingdao { private Lingdao nextLingdao; public Lingdao getNextLingdao() { return nextLingdao; }原创 2021-10-15 11:18:06 · 90 阅读 · 0 评论 -
JAVA设计模式(16)行为型-策略模式
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。抽象策略类//@author v: jbossjfpublic interface Strategy { /** * 策略方法 */ public void strategyInterface();}具体策略类public class ConcreteStrategyA implements Strategy { @Over原创 2021-10-15 11:14:15 · 71 阅读 · 0 评论 -
JAVA设计模式(15)行为型-状态模式
允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。//@author v: jbossjfpackage com.roc.state;public class Context { private State state; public Context(State state){ this.state=state; } public State getState() { return state;.原创 2021-10-15 11:07:15 · 73 阅读 · 0 评论 -
JAVA设计模式(14)行为型-观察者模式
在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。1、定义一个抽象被观察者接口package com.jstao.observer;/*** * 抽象被观察者接口 * 声明了添加、删除、通知观察者方法 * @author v: jbossjf * */public interface Observerable { public void registerObserver(Observer o); public v原创 2021-10-15 10:57:23 · 102 阅读 · 0 评论 -
JAVA设计模式(13)行为型-模板方法
定义一个模板结构,将具体内容延迟到子类去实现。//author : v: jbossjfpublic abstract class Abstract Class { //模板方法,用来控制炒菜的流程 (炒菜的流程是一样的-复用)//申明为final,不希望子类覆盖这个方法,防止更改流程的执行顺序 final void cookProcess(){ //第一步:倒油 this.pourOil(); //第二步:热油原创 2021-10-15 10:52:26 · 84 阅读 · 0 评论 -
JAVA设计模式(12)结构型-组合模式
组合模式(Composite Pattern)有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。组合模式让你可以优化处理递归或分级数据结构。package design.composite;/** * author: V:jbossjf */public abstract class Company { private String name; public C原创 2021-10-12 08:13:06 · 75 阅读 · 0 评论 -
JAVA设计模式(11)结构型-享元模式
享元模式(Flyweight Pattern):以共享的方式高效的支持大量的细粒度对象。通过复用内存中已存在的对象,降低系统创建对象实例的性能消耗。//@author V:jbossjfpackage Chartflyweight;import java.util.Hashtable;public class CharactorFactory { private Hashtable<String, FlyWeight> charactors = new Hashtable&l原创 2021-10-12 08:08:43 · 72 阅读 · 0 评论 -
JAVA设计模式(10)结构型-桥接模式
桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。//@author: V:jbossjfpublic interface Implementor { public void operation(); }public class ConcreateI原创 2021-10-12 07:59:41 · 77 阅读 · 0 评论 -
JAVA设计模式(9)结构型-外观模式(门面模式)
外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。package com.huawei.facadeDesign.children;import org.apache.log4j.Logger;/** * cpu子系统类 * @author V: jbossjf * */public class CPU{ publi原创 2021-10-12 07:55:25 · 87 阅读 · 0 评论 -
JAVA设计模式(8)结构型-代理模式
代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.1、静态代理/** * 接口 * author: V : jbossjf */public interface IUserDao { void save();}/** * 接口实现 * 目标对象 */public class UserDao implements IUserDao {原创 2021-10-12 07:50:32 · 84 阅读 · 0 评论 -
JAVA设计模式(7)结构型-装饰器模式
装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。//author: V:jbossjfpackage DesignPattern.Strategy.Decorator;public interface Drink { public float cost(); public String getDescription();}package DesignPattern.Strateg.原创 2021-10-12 07:41:42 · 84 阅读 · 0 评论 -
JAVA设计模式(6)结构型-适配器模式
适配器就是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在//author: V:jbossjfpublic interface Ps2 { void isPs2();} public interface Usb { void isUsb();}public class Usber implements Usb { @Override public void isUsb()原创 2021-10-12 07:35:53 · 96 阅读 · 0 评论 -
JAVA设计模式(5)创建型-原型模式(深/浅拷贝)
原型模式其实java Object中已经提供了一个Clone( )方法,平时很少用到,最近读Retrofit源码时候看到有这种使用方式。深浅拷贝的区别: 浅拷贝是将原始对象中的数据型字段拷贝到新对象中去,将引用型字段的“引用”复制到新对象中去,不把“引用的对象”复制进去,所以原始对象和新对象引用同一对象,新对象中的引用型字段发生变化会导致原始对象中的对应字段也发生变化。 深拷贝是在引用方面不同,深拷贝就是创建一个新的和原始字段的内容相同的字段,是两个一样大的数据段,所以两者的引用是不...原创 2021-10-10 14:55:35 · 122 阅读 · 0 评论 -
JAVA设计模式(4)创建型-建造者模式
建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。//作者: V:jbossjfpublic class Person { private String head; private String body; private String foot; public String getHead() { return head; } public void setHead(String h原创 2021-10-10 14:38:01 · 98 阅读 · 0 评论 -
JAVA开发模式(3)创建型-单例模式
单例模式:是一种常用的软件设计模式,在它的核心结构中值包含一个被称为单例的特殊类。一个类只有一个实例,即一个类只有一个对象实例。//作者: V: jbossjfpublic class SingletonDemo1 { private static SingletonDemo1 instance; private SingletonDemo1(){} public static SingletonDemo1 getInstance(){ if (instanc原创 2021-10-09 20:41:55 · 88 阅读 · 0 评论 -
JAVA设计模式(1)创建型-工厂方法
工厂方法模式:每个工厂独立生产产品产品接口package factory;/** * * @author V: jbossjf * */public interface Product { //声明类所需继承的共同接口,也可以是抽象类}产品类package factoryMehtod;/** * * @author V: jbossjf * */public class ProductA implements Product { publi.原创 2021-10-07 22:29:38 · 104 阅读 · 0 评论