设计模式
秃头小芒果
想要一份20K的工作
展开
-
设计模式之备忘录模式
备忘录模式备忘录模式:在不破坏封装新得前提下,捕获一个对象得内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式类图originator:对象(需要保存状态的对象)Menento : 备忘录对象,负责保存多个备忘录对象。Caretaker :守护者对象,负责保存多个备忘录对象。备忘录模式简单实现备忘录对象:/** * 备忘录对象 * @author gz * @date 2020/9/28-0:18 */public class Meme原创 2020-09-28 00:44:21 · 101 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式观察者模式:对象之间多对一的依赖的一种设计方案。观察者模式UML类图观察模式的简单实现Observer:public interface Observer { //修改数据 void update(float temperature,float pressure,float humidity);}public class ConcreteObserver implements Observer { private float temperature; p原创 2020-09-24 16:17:29 · 50 阅读 · 0 评论 -
设计模式之访问者模式
分派分派是指运行环境按照对象的实际类型为其绑定对应方法体的过程。在学习访问者模式之前我们需要了解双分派。双分派:在选择一个方法时,不仅仅要根据消息接收者的运行时型别,还要根据参数的运行时类别例子:public class Father { public void accept(Execute execute){ execute.method(this); }}public class Son extends Father{ @Override原创 2020-09-22 16:46:46 · 80 阅读 · 0 评论 -
设计模式之命令模式
命令模式命令模式:在软件设计中,我们经常需要像某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求得操作是哪个,我们只需要在程序运行时指定具体得请求接收者即可。命令模式UML类图解析:Invoker 是调用者Command:是命令角色,需要执行的所有命令都在这,可以是接口或者抽象类Receiver:接受者角色,知道如何实施和执行一个请求相关的操作ConcreteCommand:将一个接收者对象与一个动作绑定,调用接收者相应的操作,实现execute命令模式的简单实现Rece原创 2020-09-21 20:28:46 · 87 阅读 · 0 评论 -
设计模式之模板方法模式
模板方法模式模板方法模式:在一个抽象类公开定义了执行他的方法模板,他的子类可以按照需要重写方法实现,但调用将以抽象类中定义的方法进行。模板方法的UML类图模板方法的简单实现Cofee类:public abstract class Coffee { public void templateMethod(){ prepare(); add(); make(); } public void prepare(){原创 2020-09-20 15:54:56 · 58 阅读 · 0 评论 -
设计模式之动态代理
代理模式代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是,可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。代理模式种类:静态代理,动态代理(JDK代理),Cglib代理。静态代理静态代理:需要定义接口或者父类,被代理对象与代理对象一起实现接口或者继承相同父类。静态代理UML类图:代码实现:接口类:public interface Student { void add();}被代理类:public cl原创 2020-09-19 23:26:26 · 1454 阅读 · 0 评论 -
设计模式之享元模式
享元模式享元模式:运用共享技术支持大量细粒度的对象。常用于系统底层开发,解决系统的性能问题,向数据库连接池,里面都是创建好的连接对象,在这些连接对象中我们需要的则直接拿来用,避免重新创建。经典用用场景:池技术。享元模式UML图享元模式简单实现User类:public class User { private String name; public User(String name) { this.name = name; } public St原创 2020-09-19 00:07:16 · 63 阅读 · 0 评论 -
设计模式之外观模式
外观模式外观模式:,也叫过程模式,外观模式为子系统的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口是的这一子系统更加容易使用。外观模式UML类图外观模式的简单实现Tv类:public class Tv { public void on(){ System.out.println("开电视"); } public void off(){ System.out.println("关电视"); }}Light类:原创 2020-09-17 21:46:14 · 99 阅读 · 0 评论 -
设计模式之组合模式
组合模式组合模式:又被称为部分整体模式,他创建了对象组得树形结构,将对象组合合成树状结构以表示“整体-部分”得层次关系。组合模式UML图组合模式简单实现OrganizationComponent类:public abstract class OrganizationComponent { private String name; private String des; public OrganizationComponent(String name, String de原创 2020-09-16 22:06:13 · 84 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者模式定义:动态的将新功能附加到对象上。在对象功能扩展方面,他比继承更有弹性。装饰者模式也体现了开闭原则。UML类图结构装饰者模式简单实现代码实现:DrinkComponent类:public interface DrinkComponent { void drink();}Coffee类:public class Coffee implements DrinkComponent { public void drink() { System.out.原创 2020-09-15 20:48:45 · 54 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式桥接模式:将实现与抽象放在不同的层次中,是的两个层次可以独立变化。结构型设计模式。原型类图解析原理类图:Client类:桥接模式的调用者抽象类(Abstraction):维护了Implementor,两者是聚合的关系。充当桥接类RefinedAbstraction:是抽象类的子类代码实现软件类://抽象类public abstract class SoftWare { public abstract void run();}//子类public class C原创 2020-09-14 17:01:04 · 64 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式适配器模式:将某个类的接口转换为客户端期望的另一个接口表示,主要目的式兼容性,让原本因接口不匹配不能在一起工作的两个类可以协同工作。适配器模式可分为三类:类适配器对象适配器接口适配器角色的定义需要被适配者:可以是类,对象,接口。被称为src(source)适配器:Adapter。最终的输出:dst(destination)适配器模式的过程大致为:src>>adapter>>dst类适配器基本流程:Adapter类,通过继承src类,实现dst接口原创 2020-09-13 22:19:32 · 67 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。具体细节:产品类:一般是一个较为复杂的对象,在创建过程中比较复杂,一般会有较多的代码量。抽象建造者:引入抽象建造者的目的,是为了将建造的具体过程交给子类实现,可以扩展。建造者:实现抽象建造者的方法。调用者:负责调用建造者来生产产品。建造者模式的简单例子UML类图:代码实现:House代码:产品类public class House { //房子地基 priva原创 2020-09-13 00:06:01 · 68 阅读 · 0 评论 -
设计原型之原型模式
原型模式定义与理解定义:有些对象的创建过程较为复杂,而且有时候需要频繁创建,原型模式通过给一个原型对象来指明所要创建的对象类型。然后用复制这个原型对象的方法创建更多同类型的对象,这就是原型模式。原型模式简单实现需要去实现Cloneable接口,在JVM中只有实现这个接口的类才能被拷贝,否则会抛出CloneNotSupportedException异常。重写Object类中的clone方法,Object类是所有类的父类,而Object类中的clone方法是返回对象的一个拷贝。在重写的clone方法原创 2020-09-12 01:17:20 · 115 阅读 · 0 评论 -
设计模式之工厂模式
什么是工厂模式工厂设计模式:它是一种创建型模式。工厂模式可以帮我们创建对象,去代替new操作的一种设计模式。将实例化对象的代码提取出来,放到一个类中统一管理喝维护,到达著项目的依赖关系的解耦。从而提高项目的扩展和维护性。工厂设计模式:工厂方法模式(简单工厂模式是工厂方法模式的特例)。抽象工厂模式。简单工厂模式简单工厂模式的UML类图:代码设计:产品类://抽象产品类public abstract class AoDi { public AoDi(){}}//具体产品类原创 2020-09-11 01:03:56 · 61 阅读 · 0 评论 -
设计模式之单例模式
单例设计模式介绍类的单例设计模式:就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。并且该类只提供一个取得对象实例的方法(静态方法)单例模式特点:单例类只能由一个实例。单例类必须自己建立自己的唯一实例。单例类必须对外提供这个唯一实例。单例模式的实现单例模式有7中时间方式:饿汉式(两种)懒汉式(三种)双重检查静态内部类枚举饿汉式1.饿汉式(静态常量):class Singleton{ //防止被实例化 private Singleto原创 2020-09-10 00:01:38 · 68 阅读 · 0 评论 -
设计模式的七大原则
设计模式设计模式可以更好的解决耦合度,内聚合以及可维护性,可扩展性,重用性,灵活性等问题。设计模式的七大原则:单一职责原则接口隔离原则依赖倒转原则里氏替换原则开闭原则迪米特法则合成复用原则单一职责原则定义:一个类只负责一项职责。降低类的复杂程度。提高类的可读性,可维护性。接口隔离原则定义:客户端不需要依赖它不需要的接口,一个类对另一个类的依赖建立在最小的接口上。依赖倒转原则定义:高层模块不应该依赖底层模块,两者都依赖抽象。中心思想是面向接口编程。里氏替换原则定义:所有引原创 2020-09-09 00:09:51 · 76 阅读 · 0 评论