
设计模式
文章平均质量分 87
程序员加文
这个作者很懒,什么都没留下…
展开
-
【设计模式】21.访问者模式
封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。原创 2023-03-02 09:50:28 · 120 阅读 · 0 评论 -
【设计模式】20.迭代器模式
提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。原创 2023-03-01 08:01:43 · 203 阅读 · 0 评论 -
【设计模式】19.中介者模式
又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。原创 2023-03-01 08:00:56 · 238 阅读 · 0 评论 -
【设计模式】18.观察者模式
又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。原创 2023-03-01 08:01:45 · 322 阅读 · 0 评论 -
【设计模式】17.状态模式
【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。类图如下://电梯的4个状态 //开门状态 public final static int OPENING_STATE = 1;//关门状态 public final static int CLOSING_STATE = 2;原创 2023-03-01 07:57:04 · 125 阅读 · 0 评论 -
【设计模式】16.职责链模式
又名职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。原创 2023-03-01 07:57:48 · 120 阅读 · 0 评论 -
【设计模式】15.命令模式
日常生活中,我们出去吃饭都会遇到下面的场景。将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。原创 2023-03-01 07:55:34 · 129 阅读 · 0 评论 -
【设计模式】14.策略模式
该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。原创 2023-03-01 07:56:23 · 141 阅读 · 0 评论 -
【设计模式】13.模板模式
定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。原创 2023-03-01 07:55:40 · 99 阅读 · 0 评论 -
【设计模式】11.享元模式
运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。原创 2023-02-28 08:58:34 · 214 阅读 · 0 评论 -
【设计模式】10.外观模式
又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 外观(Facade)模式是“迪米特法则”的典型应用。原创 2023-02-28 08:59:25 · 237 阅读 · 0 评论 -
【设计模式】9.桥接模式
将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。原创 2023-02-28 08:58:53 · 245 阅读 · 0 评论 -
【设计模式】8.装饰者模式
我们先来看一个快餐店的例子。快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。使用继承的方式存在的问题:扩展性不好如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和FriedNoodles分别定义一个子类。如果要新增一个快餐品类(炒河粉)的话,就需要定义更多的子类。产生过多的子类 指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。原创 2023-02-28 08:49:06 · 142 阅读 · 0 评论 -
【设计模式】7.适配器模式
将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。原创 2023-02-28 08:46:47 · 151 阅读 · 0 评论 -
【设计模式】6.代理模式
代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理访问目标对象这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是:远程对象、创建开销大的对象或需要安全控制的对象由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时原创 2023-02-28 08:46:15 · 189 阅读 · 0 评论 -
【设计模式】6.代理模式
代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理访问目标对象这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是:远程对象、创建开销大的对象或需要安全控制的对象由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译期就生成,而动态代理代理类则是在Java运行时原创 2023-02-28 08:47:05 · 204 阅读 · 0 评论 -
【设计模式】5.原型模式
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。原创 2023-02-28 08:46:33 · 153 阅读 · 0 评论 -
【设计模式】5.原型模式
用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。原创 2023-02-28 08:02:44 · 156 阅读 · 0 评论 -
【设计模式】4.建造者模式
将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。原创 2023-02-28 08:01:10 · 205 阅读 · 0 评论 -
【设计模式】3.单例模式
没有懒加载:1.1,1.2线程不安全:1.3,1.5(不可以用)多线程安全,效率低:1.4多线程安全,懒加载,效率可以:1.6,1.7,1.8(推荐)单例设计模式有八种方式饿汉式__静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)双重检查静态内部类枚举。原创 2023-02-27 22:52:04 · 797 阅读 · 0 评论 -
【设计模式】2.抽象工厂模式
这些工厂只生产同种类产品,同种类产品称为同等级产品,也就是说:工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。本节要介绍的抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品族,下图所示横轴是产品等级,也就是同一类产品;抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。原创 2023-02-27 22:36:23 · 426 阅读 · 0 评论 -
【设计模式】1.工厂模式
需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。原创 2023-02-27 22:37:04 · 234 阅读 · 0 评论 -
【设计模式】设计模式的三种分类
设计模式的三种分类原创 2022-09-21 21:37:19 · 134 阅读 · 0 评论 -
【设计模式】设计模式的七大原则
设计模式的七大原则原创 2022-09-21 21:22:43 · 460 阅读 · 0 评论 -
【设计模式】访问者模式
设计模式之访问者模式原创 2022-09-20 19:23:36 · 212 阅读 · 0 评论