
面试常见的设计模式
文章平均质量分 89
硕风和炜
硕风和炜,优快云官方Java领域优质创作者,阿里云社区专家博主,华为云云享专家,第十二届蓝桥杯JavaB组省1,保研,国家奖学金,JAVA开发技术栈,面试刷题,面经八股文,经验分享,好用的网站工具分享
展开
-
【Java中23种面试常考的设计模式之工厂模式<<<简单工厂VS工厂方法VS抽象工厂>>>(Factory)-----创建型模式】
【Java中23种面试常考的设计模式之工厂模式(Factory)-----创建型模式】简单工厂模式也叫静态工厂模式,就是工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。对于增加新产品无能为力!不修改代码的话,是无法扩展的。为了避免简单工厂模式的缺点,工厂方法完全满足开闭原则。简单工厂模式只有一个工厂类,而工厂方法模式有一组实现了相同接口的工厂类。用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加产品族)抽象工厂模式原创 2022-11-07 20:47:49 · 328 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之建造者模式(Builder)---创建型模式】
接下来我们要进行学习的是:【Java中23种面试常考的设计模式之建造者模式(Builder)—创建型模式】。具体建造者ConcreteBuilder:定义我们的实现组件构造者。指挥者Director:定义产品组装接口及组装的实现。抽象建造者Builder:定义我们的组件构造者。产品Product:最终的产品类。1. 使用多个简单的对象一步一步构建成一个复杂的对象。2. 实际开发中,我们所需要的对象构建时非常复杂,且有很多步骤需要处理时,这时建造者模式就很适合。3. 分离了对象子组件的单独构造(由Buil原创 2022-11-06 10:39:03 · 344 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之原型模式(prototype)---创建型模式】
【Java中23种面试常考的设计模式之原型模式(prototype)---创建型模式】1. 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。2. 在java中我们知道通过new关键字创建的对象是非常繁琐的(类加载判断,内存分配,初始化等),在我们需要大量对象的情况下,原型模式就是我们可以考虑实现的方式。原型模式我们也称为克隆模式,即一个某个对象为原型克隆出来一个一模一样的对象,该对象的属性和原型对象一模一样。而且对于原型对象没有任何影响。原型模式的克隆方式有两种:浅克隆原创 2022-11-05 11:25:03 · 375 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之单例模式(Singleton)---创建型模式】
【Java中23种面试常考的设计模式之单例模式(Singleton)---创建型模式】饿汉式、懒汉式、线程安全与线程不安全、DCL双锁检查机制(防止指令重排序)、枚举、静态内部类、实现代码原创 2022-11-04 11:37:05 · 324 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之代理模式(Proxy)---结构型模式】
【Java中23种面试常考的设计模式之代理模式(Proxy)---结构型模式】若代理类在程序运行前就已经存在,那么这种代理方式被成为静态代理,这种情况下的代理类通常都是我们在Java代码中定义的。通常情况下, 静态代理中的代理类和目标类会实现同一接口或是派生自相同的父类。代理类在程序运行时创建的代理方式被成为动态代理。动态代理的代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的。原创 2022-11-03 17:47:24 · 389 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之享元模式(Flyweight)---结构型模式】
【Java中23种面试常考的设计模式之享元模式(Flyweight)—结构型模式】23种设计模式持续更新汇总中。FlyWeight抽象享元类:通常是一个接口或抽象类,声明公共方法,这些方法可以向外界提供对象的内部状态,设置外部状态。接下来我们要进行学习的是:【Java中23种面试常考的设计模式之享元模式(Flyweight)—结构型模式】。UnsharedConcreteFlyWeight非共享享元类:不能被共享的子类可以设计为非共享享元类。Main-Client:客户端测试类。原创 2022-11-02 11:36:51 · 212 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之外观模式(Facade)---结构型模式】
我们要进行学习的是:【Java中23种面试常考的设计模式之外观模式(Facade)—结构型模式】。 1. 降低访问复杂系统的内部子系统时的复杂度,简化客户端之间的接口。 2. 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。原创 2022-11-01 10:39:35 · 348 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之装饰器模式(Decorator)---结构型模式】
【Java中23种面试常考的设计模式之装饰器模式(Decorator)---结构型模式】Decorator装饰角色:持有一个抽象组件的引用,装饰对象接受所有客户端的请求,并把这些请求转发给真实的对象,这样就能在真实对象调用前后增加新的功能。好了,到这里【Java中23种面试常考的设计模式之装饰器模式(Decorator)—结构型模式】就结束了,23种设计模式持续更新汇总中。Component 抽象组件角色:真实对象和装饰对象有相同的接口,这样客户端对象就能够以与真实对象相同的方式同装饰对象交互。原创 2022-10-31 11:07:08 · 346 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之组合模式(Composite)---结构型模式】
【Java中23种面试常考的设计模式之组合模式(Composite)—结构型模式】,23种设计模式持续更新汇总中。组合模式:将对象组合成树形结构以表示"部分-整体"的层次结构,从而使客户端可以使用统一的方式处理部分对象和整体对象。接下来我们要进行学习的是:【Java中23种面试常考的设计模式之组合模式(Composite)—结构型模式】。抽象构件(Component)角色: 定义了叶子和容器构件的共同点。容器(Composite)角色:有容器特征,可以包含子节点。原创 2022-10-30 11:19:48 · 378 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之桥接模式(Bridge)---结构型模式】
【Java中23种面试常考的设计模式之桥接模式(Bridge)—结构型模式】23种设计模式持续更新汇总中。接下来我们要进行学习的是:【Java中23种面试常考的设计模式之桥接模式(Bridge)—结构型模式】。抽象类(Abstraction): 维护了Implementor,即它的实现子类Concretelmplementor,二者是聚合关系,Abstraction充当桥接类。桥接模式: 将抽象部分与实现部分分离,使它们都可以独立的变化。Implementor: 行为实现类的接口。原创 2022-10-29 09:58:38 · 759 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之适配器模式(Adapter)---结构型模式】
接下来我们要进行学习的是:【Java中23种面试常考的设计模式之适配器模式(Adapter)—结构型模式】。Adapter类:通过在内部包装一个Adaptee对象,把源接口转换成目标接口。Target类:用户期待的接口,目标可以是具体的或抽象的类,也可以是接口。Client—Main:客户端测试类。Adaptee类:需要适配的类。原创 2022-10-28 11:48:06 · 642 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之责任链模式(Chain of Responsibility)---行为型模式】
【Java中23种面试常考的设计模式之责任链模式(Chain of Responsibility)—行为型模式】就结束了,23种设计模式持续更新汇总中。 1. 责任链设计模式:为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。 2. 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象处理。原创 2022-10-27 11:46:21 · 463 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之命令模式(Command)---行为型模式】
接下来我们要进行学习的是:【Java中23种面试常考的设计模式之命令模式(Command)—行为型模式。Client–Main 创建一个具体命令对象并设定它的接收者。命令模式:请求以命令的形式封装在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。好了,到这里【Java中23种面试常考的设计模式之命令模式(Command)—行为型模式】就结束了,23种设计模式持续更新汇总中。原创 2022-10-26 11:32:20 · 405 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之解释器模式(Interpreter)---行为型模式】
【Java中23种面试常考的设计模式之解释器模式(Interpreter)—行为型模式】TerminalExpression:终结符表达式类,是AbstractExpression的子类,实现了文法中有关终结符相关的解释操作。NonterminalExpression:非终结符表达式,AbstractExpression的子类,该类的功能与终结表达式类相反,文法中所有非终结符由该类进行解释。好了,23种设计模式持续更新汇总中。解释器模式:提供了评估语言的语法或表达式的方式。原创 2022-10-26 10:48:38 · 380 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之中介者模式(Mediator)---行为型模式】
【Java中23种面试常考的设计模式之中介者模式(Mediator)—行为型模式】。Mediator 中介者接口、ConcreteMediator 中介者实现、Colleague同事类接口、ConcreteColleague同事实现类、客户端测试。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。好了,到这里【Java中23种面试常考的设计模式之中介者模式(Mediator)—行为型模式】就结束了,23种设计模式持续更新汇总中。原创 2022-10-25 15:56:40 · 726 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之访问者模式(Visitor)---行为型模式】
【Java中23种面试常考的设计模式之访问者模式(Visitor)---行为型模式】通俗来说就是:不同的人对同一件事情有着不同的处理方式。仔细思考一下我们会发现:人对应的Element接口,男人女人就是俩个具体实现类,成功和恋爱的状态就是Visitor,每个状态下对应的不同的是Element具体实现类的不同处理方式,由此对应的是俩个具体Visitor实现类,最后多个Element元素需要我们使用集合来存储。访问者模式:使用了一个访问者类,它改变了元素类的执行算法。原创 2022-10-24 17:46:56 · 428 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之迭代器模式(Iterator)---行为型模式】
【Java中23种面试常考的设计模式之迭代器模式(Iterator)---行为型模式】迭代器主要是遍历对象,聚合接口主要是存储对象。由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。迭代器设计模式:用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。原创 2022-10-23 10:50:01 · 356 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之策略模式(Strategy)---行为型模式】
【Java中23种面试常考的设计模式之策略模式(Strategy)---行为型模式】无论是从代码实现上,还是类图,策略模式和状态模式几乎都一样,但他们本质上是有所不同的,策略模式是完成一件事有不同实现方式,不同的行为;但是状态模式是某一个对象对应的不同状态,总体还是完成一件事,这件事中对应着不同的状态,你可以简单的把它理解为它只有一种策略,这种策略下对应着多种状态。策略模式核心思想是:在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。原创 2022-10-22 20:44:28 · 772 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之状态模式(State)---行为型模式】
【Java中23种面试常考的设计模式之状态模式(State)---行为型模式】主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。代码中包含大量与对象状态有关的条件语句。原创 2022-10-22 17:45:31 · 588 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之模板模式(Template)---行为型模式】
模板模式核心思想是:一个抽象类公开定义了执行它的方法的方式/模板,它的子类可以按需要重写方法实现。通俗来说就是处理步骤父类中定义好,具体的实现延迟到子类定义中。好了,到这里【Java中23种面试常考的设计模式之模板模式(Template)—行为型模式】就结束了,23中设计模式持续更新汇总中。接下来我们要进行学习的是:【Java中23种面试常考的设计模式之模板模式(Template)—行为型模式】。定义规则的抽象、不可变的模板类,以及实现规则,进行具体业务逻辑的具体子类。原创 2022-10-21 21:49:20 · 622 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之观察者模式(Observer)---行为型模式】
【Java中23种面试常考的设计模式之观察者模式(Observer)---行为型模式、观察者模式、生产生活中的应用场景、观察者模式优点与缺点、核心内容、UML类图、观察者模式中的角色、实现代码、java中自带观察者设计模式】原创 2022-10-20 16:53:50 · 724 阅读 · 0 评论 -
【Java中23种面试常考的设计模式之备忘录模式(Memento)---行为型模式】
【Java中23种面试常考的设计模式之备忘录模式(Memento)---行为型模式】Memento 包含了要被恢复的对象的状态。Caretaker 对象负责从 Memento 中恢复对象的状态。备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。原创 2022-10-18 21:09:37 · 606 阅读 · 0 评论 -
【面试最常见的设计模式之工厂模式】
工厂模式(Factory Method Pattern)也叫虚拟构造函数模式或多态性工厂模式,其用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。工厂模式是一种创建型的设计模式。简单工厂的实现思路是,定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。简单工厂适用于需要创建的对象较少或客户端不关心对象的创建过程的情况。原创 2022-09-30 15:28:29 · 742 阅读 · 0 评论 -
【面试最常见的设计模式之单例模式】
单例模式(Singleton Pattern)是最简单的创建型设计模式。它会确保一个类只有一个实例存在。单例模式最重要的特点就是构造函数私有,从而避免外界直接使用构造函数直接实例化该类的对象。饿汉式:类加载时就进行对象实例化懒汉式:第一次引用类时才进行对象实例化饿汉式单例模式: 在类被加载时就会初始化静态变量instance,这时候类的私有构造函数就会被调用,创建唯一的实例。原创 2022-09-30 09:35:27 · 366 阅读 · 0 评论