![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
AI:设计模式
Java 设计模式实现
码农六子
踏实、务实、勤奋、坚持
展开
-
设计模式(13):观察者模式
1、定义 当对象间存在一对多的映射关系时,为了检测某个对象的改变,能够及时通知所依赖这个对象的所有对象都做响应的修改,这种模式被称为观察者模式。2、优点观察者和被观察者是抽象耦合的,不存在强依赖关系。 建立起一种一触即发的机制,当被观察对象发生改变时,能够及时被发现,并做相应修改。3、缺点如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知到会花费很多时间。 如果在观察者和观察目标之间有循环依赖的话,观察目标会触发它们之间进行循环调用,可能导致系统崩溃。 观..原创 2020-06-17 11:48:04 · 161 阅读 · 0 评论 -
设计模式(12):迭代器模式
1、定义 迭代器模式是提供一种顺序访问集合对象元素的方式,使用者不需要知道集合对象的底层描述。提供了一种新的集合对象访问方式。 迭代器模式属于行为模式。2、有点支持以不同的方式遍历一个聚合对象。 迭代器简化了聚合类。 在同一个聚合上可以有多个遍历。 在迭代器模式中,增加新的聚合类和迭代器类都很方便,无须修改原有代码。3、缺点 由于迭代器模式将存储数据和遍历数据的职责分离,增加新的聚合类需要对应增加新的迭代器类,类的个数成对增加,这在一定程度上增加了系统的复杂性。...原创 2020-06-17 11:44:52 · 139 阅读 · 0 评论 -
设计模式(11):解释器模式
1、定义 给定一个语言,定义一个文法的一种表示, 并定义一个解释器, 这个解释器使用该表示来解释语言中的句子。 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子,这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 就比如正则表达式,它就是解释器模型的一种应用,解释器为正则表达式定义了一个文法,如何表示一个特定的正则表达式,以及如何解释这个正则表达式。2、使用场景2.1、当有一个语言需要解释执行,并且你可将该...原创 2020-06-16 21:29:48 · 189 阅读 · 0 评论 -
设计模式(10):代理模式
1、定义 当我们不想对象被直接访问时,为某个对象提供一种代理来控制这个对象的访问,比如系统某些命令,我们不希望用户直接执行,而是提供一种代理,由代理对象来执行,以确保系统安全,这种模式被称为代理模式。代理模式属于结构型模式。2、优缺点2.1、优点职责清晰 高扩展性 智能化2.2、缺点由于中间增加了代理对象,逻辑处理、请求响应可能耗时增加。 实现代理模式可能需要额外的工作,增加系统复杂度。3、使用场景远程代理 虚拟代理 保护代理 缓存代理 。。。。4、注意事项..原创 2020-06-16 21:25:34 · 144 阅读 · 0 评论 -
Java设计模式详解之一工厂方法模式
设计模式(Design Patterns)——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设原创 2017-06-16 14:59:18 · 275 阅读 · 0 评论 -
设计模式09:责任链模式
一、定义 责任链是一种行为模式。将处理请求的多个环节连在一起,形成一条链。当请求的对象进入链条时,流过某个模块,某个模块就处理自身的逻辑,处理完成之后,将处理后的对象在交由下一个环节处理。以此来实现各个业务模块之间的解耦。二、优缺点1、优点降低耦合度,将请求的发送者与各个部分的处理逻辑进行解耦。 简化对象,兑现不需要知道链的结构,也不需要知道自己在链的那个环节,顺着链一直传...原创 2020-05-08 11:13:28 · 701 阅读 · 0 评论 -
设计模式初级:06-原型模式
一、定义 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的...原创 2020-01-28 22:50:53 · 95 阅读 · 0 评论 -
设计模式初级:05-建造者模式
、定义 使用简单的对象一步步的构建复杂对象。该设计模式属于创建型设计模式。 利用一个Builder类来一步一步的创建最终对象。该Builder类是独立于其他对象的。2、详细介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 解决问题:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由...原创 2020-01-28 22:47:38 · 89 阅读 · 0 评论 -
设计模式初级:04-单例模式
1、定义 创建型模式,提供一种创建对象的方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,并保证只有单个对象被创建,同时提供一个获取该对象的方法。1.1、条件单例只能有一个对象。 单例必须自己创建自己的唯一实例。 单例必须给所有其他对象提供这一实例使用。2、详细介绍意图:保证一个类仅有一个实例,并提供该类的全局使用方式。 解决的问题:公共的类提供全局使用方式,...原创 2020-01-28 22:35:19 · 109 阅读 · 0 评论 -
设计模式初级:03-抽象工厂模式
一、定义 抽象工厂模式是利用一个超级工厂来创建其他工厂。该设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个生成别的对象的工厂,而不是生产指定的类。每个生成对象的工厂都按照工厂模式提供对象。二、详细介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 解决问题:主要解决接口选择的问题。 使用场景:...原创 2020-01-28 22:31:08 · 103 阅读 · 0 评论 -
设计模式初级:02-工厂模式
一、定义 工厂模式是一种创建型模式。他提供一种常见对象的方式。通过一个公共的接口来提供给使用者,使其获取对象的引用,隐藏了对象的具体创建过程。二、详细介绍1、意图 创建一个创建对象的工厂,让使用者来决定去实例化哪一个工厂类,工厂模式使其创建过程延迟到子类中进行。2、解决问题 主要解决接口适配选择的问题。当不同的条件下使用不同的实现类时。比如画图:当画圆时使...原创 2020-01-19 21:06:53 · 95 阅读 · 0 评论 -
设计模式初级:01-设计模式简介
一、概括 设计模式是一种软件开发人员在面向对象开发过程中遇到一般常见问题的解决方案。是经过众多开发人员,在长期的开发过程中对问题的尝试与总结的一种经验。可以帮助开发者很快的找到一种扩展方便、维护简单的一种通用的软件设计模式。 使用设计模式,能够提高代码的复用性、可读性、易扩展,同时还能提高代码的可靠性。二、设计模式分类 根据设计模式的参考书Design Patt...原创 2020-01-18 16:31:12 · 108 阅读 · 0 评论 -
Java设计模式详解之一单例模式
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意: 1、单例类只能有一个实例。2、单例类必须自己创建自己的唯原创 2017-06-19 22:44:59 · 169 阅读 · 0 评论