
GoF23
文章平均质量分 81
关于设计模式的基本概念和实现
LatteCJZ
想要的东西都很贵,只能不断地努力奔跑
同是风华正茂,怎可甘拜下风
展开
-
GOF23-桥接模式
桥接模式桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。意图: 将抽象部分与实现部分分离,使它们都可以独立的变化。主要解决: 在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活。何时使用: 实现系统可能有多个角度分类,每一种角度都可能变化。如何解决: 把这种多角度原创 2021-04-03 23:05:30 · 146 阅读 · 0 评论 -
结构型模式之适配器模式
结构型模式之适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。在程序中这个模式也是会用到的,在不能直接去改变源码的情况,但是这个接口的又不能直接用。这时候就需要考虑适配模式,去复用一些现成的类。得到想要的业务逻辑。由于java是不支持多继承的而类的适配器模式就是通过多重继承来实现的所以现在讲的主要是对象适配器模式。优点: 1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的原创 2021-04-03 23:01:27 · 95 阅读 · 0 评论 -
GOF23-原型模式
原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。介绍意图: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。主要解决原创 2021-04-03 22:38:51 · 178 阅读 · 0 评论 -
建造者模式
建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。何时使用: 一些基本部件不会变,而其组合经常变化的时候。如何解决: 将变与不变分离开。应用实例: 1、去肯德基,汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"。 2、JAVA 中的 StringBuilder。原创 2021-04-03 22:26:09 · 132 阅读 · 0 评论 -
GOF23-工厂模式
工厂模式 工厂方法模式是对简单工厂的一个衍生,解决了许多简单工厂模式的问题。首先完全实现‘开-闭 原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。 说了这么多我们先来看看什么情况下使用工厂模式。应用场景第一种情况是对于某个产品,调用者清楚地知道应该使用哪个具体工厂服务,实例化该具体工厂,生产出具体的产品来。Java Collection中的iterator() 方法即属于这种情况。第二种情况,只是需要一种产品,而不想知道也不需要知道究竟是哪个工厂为生原创 2021-04-03 22:21:37 · 206 阅读 · 0 评论 -
创建型模式之单例模式
创建型模式之单例模式单例其实就是相对于系统来说唯一的一个存在。这里引用百度百科中对单例的解释:“是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。” 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式的设计规则由定义我们可以很清晰的抽象出: 实现Java单例模式类有哪些通用设计原创 2021-04-03 22:07:32 · 273 阅读 · 0 评论 -
设计模式的七大原则
设计模式的七大原则单一职责原则单一职责的特点对于这个原则书上是这样说的:对于一个类而言,应该仅有一个引起它变化的原因。换个通俗的语言来说,就是一个类只做自己的分内之事。就拿mvc分成来说的,view就是负责显示数据,model层负责封装数据,control层负责跟视图层跟model层交互。这也是在软件设计中为什么提倡mvc模式。如果不分层把所有代码写在一个类中,到时维护起来会有多么麻烦。这就是单一职责模型的最好的诠释了。其实在软件设计中,大部分都在做一件事就是划分职责。最重要的也最难的就是划分职原创 2021-04-03 21:59:52 · 124 阅读 · 0 评论