设计模式
文章平均质量分 59
石头-Java
热爱!
展开
-
适配器模式
适配器模式定义将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。 ——维基百科Demo类适配器Adaptee.java//无法直接调用的类,需要使用被适配public class Adaptee { void doSomeThing() { System.out.pr原创 2022-02-15 11:51:45 · 332 阅读 · 0 评论 -
策略设计模式
策略模式定义策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。 ——维基百科DemoPay.javapublic interface Pay { void pay();}AliPay.javapublic class AliPay implements Pay { @Override public void pay() { System.out.println("支付宝付款成功原创 2022-02-15 11:50:59 · 294 阅读 · 0 评论 -
模板方法模式
模板方法模式定义模板方法是一种行为设计模式。模板方法是一个定义在父类的方法,在模板方法中会调用多个定义在父类的其他方法,而这些方法有可能只是抽象方法并没有实现,模板方法仅决定这些抽象方法的执行顺序,这些抽象方法的实现由子类负责,并且子类不允许重写模板方法。 ——维基百科当做一组事情的步骤是固定的,就可以把这些步骤抽象出来比如说把大象放进冰箱需要几步3步,打开冰箱,把大象放进去,关上冰箱那把长颈鹿放进冰箱呢还是3步,打开冰箱,把长颈鹿放进去,关上冰箱这3个步骤就可以抽象出来,原创 2022-02-15 11:47:38 · 195 阅读 · 0 评论 -
装饰器模式
装饰器模式定义装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。解释举个例子,小倩颜值一般,很喜欢拍照,但是拍出来的照片颜值只有60分,她非常想拍出来的照片颜值高一些,这时候有什么办法?一种是整容,整完以后,人好看了,照片颜值自然就上去了,但是这种办法成本太高,还有风险,不推荐还有一种方法呢,就是我们的P图大法,比如加个磨皮可以增加10点颜值,瘦脸可以增加15点颜值,滤镜可以增加10点颜值…这个成本就很低了,而且还可以按照自己的意愿进行叠加效果原创 2022-02-15 11:46:50 · 117 阅读 · 0 评论 -
代理设计模式
代理模式定义为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 ——百度百科想象一个需求张三有一个方法doSomeThing,现在需要在这个方法调用前后做一些事情,比如打印日志条件是不能改动张三的doSomeThing方法,而且还想继续之前的调用方式先来看一种简单的实现方式静态代理IP原创 2022-02-09 16:00:01 · 85 阅读 · 0 评论 -
建造者模式
建造者模式是什么?建造者模式(Builder Pattern)是一种设计模式,又名:生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。 ——维基百科建造者模式的概念有点抽象…先来简单介绍一下建造者模式中的几个角色概念建造者模式中的几个角色Product:表示被构造的复杂对象,这个比较好理解,就是需要构建的对象Builder:为原创 2022-02-09 15:57:53 · 343 阅读 · 0 评论 -
原型设计模式
原型模式概念定义:给出一个原型对象实例来指定创建对象的类型,并通过拷贝这些原型的方式来创建新的对象。 ——百度百科简单来说原型模式就是不通过new关键字创建对象,而是通过一个已经存在的对象来复制一个新的对象。使用场景两种情况下会用到原型模式1、需要创建复杂的对象,创建复杂对象需要大量的初始化工作,这时候就可以使用现有对象直接复制一个新的对象出来2、需要创建一个和现有对象一样的对象,如果重新new一个的话,我们还需要遍历所有属性进行set实现原型模式比较简单,直接贴一个从维基百科看到原创 2022-02-09 15:54:12 · 75 阅读 · 0 评论 -
单例设计模式
前言单例模式是面试中非常常见的问题,我们在项目中应该或多或少都用到过单例模式,这次来聊一聊一下比较经典的几种单例模式的使用以及优缺点。定义单例模式(Singleton Pattern),属于创建类型的一种常用的软件设计模式。确保一个类在任何情况下只有一个实例,并提供一个全局访问点。常见的几种单例实现方式说到单例模式,我们最先想到的肯定是饿汉式单例模式和懒汉式单例模式OK,分别来看一下这两种饿汉式单例模式//饿汉式单例模式public class HungrySingleton {原创 2022-02-09 15:49:11 · 208 阅读 · 0 评论 -
工厂设计模式
简单工厂模式简单工厂模式(SimpleFactoryPattern)是指由一个工厂对象决定创建出哪一种产品类的实例,但它不属于GOF,23种设计模式。适用场景: 1.工厂类要创建的类比较少。 2.只需要传入正确的参数,不需要知道对象创建的细节。缺点: 1.增加新的产品时需要修改工厂类的判断逻辑,违背开闭原则。 2.不易于创建逻辑复杂的对象。工厂方法模式工厂方法模式(FatoryMethodPattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪原创 2022-02-09 15:47:34 · 967 阅读 · 0 评论 -
七大软件设计原则
1.开闭原则定义:一个软件实体如类,模块和函数应该对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节。优点:提高软件系统的可复用性及可维护性2.依赖倒置原则定义:高层模块不应该依赖低层模块,二者应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象针对接口编程,不应该针对实现编程优点:可以减少类间的耦合性,提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险。3.单一职责原则定义:不要存在多于一个导致类变更的原因一个类、 接口、方法只负责一项职责优点:降低原创 2022-02-09 15:45:59 · 539 阅读 · 0 评论