设计模式
-admin-
这个作者很懒,什么都没留下…
展开
-
设计模式--策略模式
<!--设计模式之Strategy Pattern -行为型模式--策略模式>// 定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户Demo1---FACTORY METHOD鸭子有飞行和鸣叫两种行为,而不同的鸭子,它的飞行行为和鸣叫行为各不相同,如何创建一个程序实现-----------------------------------...原创 2017-09-21 17:27:36 · 205 阅读 · 1 评论 -
外观模式
外观模式外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。使用场景客户端不需要知道系统内部的复杂联系,整个系统只需要提供一个“接待员”即可定义系统的入口优点减少系统相互依赖提高灵活性提高了安全性缺点不符合开闭原则...原创 2019-01-22 16:35:05 · 103 阅读 · 0 评论 -
适配器模式
适配器模式将一个类的接口,转化成客户期望的另一个接口。让原本接口不兼容的类可以合作无间,属于结构型模式。从结构上分为类适配器、对象适配器和缺省适配器,类适配器,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配,对象适配器使用对象引用进行适配。缺省适配器由一个抽象类实现,并且在抽象类中实现所有的方法,具体的子类都要继承此抽象类如何解决继承和依赖关键代码继承或依赖已有的...原创 2019-01-22 16:34:37 · 120 阅读 · 0 评论 -
设计模式
设计模式1. 什么是设计模式设计模式是对软件设计过程中普遍存在的问题,提出的解决方案。换句话说,设计模式就是一套被反复使用,大多人知晓,经过分类的,代码设计的经验的总结。他是为了可重用代码,让代码更容易被他人理解,保证代码的高可靠性和高位户型2. 设计模式原则开闭原则对扩展开放,对修改关闭。在程序需要扩展的时候,不修改原有的代码或者对原来的代码产生影响,达到一个热插拔的效果。...原创 2019-01-22 16:33:40 · 108 阅读 · 0 评论 -
桥接模式
桥接模式将抽象部分和实现部分分离,使他们可以独立的变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。优点抽象和实现的分离优秀的扩展能力实现细节对客户的透明缺点桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建...原创 2019-01-22 16:32:27 · 108 阅读 · 0 评论 -
建造者模式
建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。简单点讲,就是使用多个简单的对象一步一步构建成一个复杂的对象,属于创建型模式,提供了一种创建对象的最佳方式。优点建造者独立,容易扩展便于控制细节风险缺点产品必须有共同点,范围有限制内部变化复杂,会有很多的建造类案例以lol 盖伦、赵信召唤师为例,召唤师都有名称和qwer技能packag...原创 2019-01-22 16:31:39 · 120 阅读 · 0 评论 -
简单工厂模式
简单工厂模式定义工厂方法模式(英语:Factorymethod pattern)是一种实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。”创建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中...原创 2019-01-22 16:30:58 · 128 阅读 · 0 评论 -
过滤器模式
过滤器模式(标准模式)允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把他们连接起来案例Person类有三个属性:姓名(Name)、性别(Gender)和婚姻情况(Marital),我们的系统中的一些功能需要对这些属性进行筛选,比如:得到所有的男性;得到所有的女性;得到所有还单身的人;得到所有已婚的人。系统还希望能够将这些条件组合起来进行筛选,比如:得到...原创 2019-01-22 16:30:11 · 127 阅读 · 0 评论 -
观察者模式
观察者模式(发布-订阅模式)观察者模式定义了一对多的依赖,当一个对象状态发生变化时,他的所有依赖者都会收到通知并自动更新。属于行为型模式。主要解决一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作关键代码在抽象类里又一个ArrayList存放观察者们优点观察者和被观察者是抽象耦合的建立一套触发机制缺点如果一个被观察者对象有很多直接或间接的...原创 2019-01-22 16:28:54 · 97 阅读 · 0 评论 -
代理模式
代理模式为其他对象提供一种代理以控制对这个对象的访问应用实例spring aop优点职责清晰高扩展性智能化缺点由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。实现代理模式需要额外的工作,有些代理模式的实现非常复杂。注意和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。和装饰器...原创 2019-01-22 16:27:51 · 167 阅读 · 0 评论 -
策略模式
策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户,属于行为型模式。意图定义一系列的算法,把他们一个个封装起来,使他们可以相互替换主要解决在有多种算法相似的情况下,使用if…else所带来的复杂和难以维护何时使用一个系统有许多许多类,而区分他们的只是他们的直接行为关键代码实现一个接口案例计算器的算法实现一个项目的多个主...原创 2019-01-22 16:25:51 · 220 阅读 · 2 评论 -
单例模式
单例模式定义单例模式,属于创建型模式,提供了一种对象创建的最佳方式。它确保了一个类只有一个实例,并提供了一个全局访问点。特征单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例意图保证一个类仅有一个实例,并提供一个访问他的全局访问点主要解决一个全局使用的类频繁的创建和销毁何时使用当你想控制实例数目,节省系统资源的时候如何解决判断...原创 2018-10-16 13:47:33 · 90 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式定义抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。使用场景提供一个创建一系列相关或相互依赖对象的接口,而无需指定...转载 2018-10-16 13:44:29 · 95 阅读 · 0 评论 -
享元模式
享元模式运用共享技术有效的支持大量细粒度的对象,主要用于减少创建对象的数量,以减少内存占用和提高性能,属于结构型模式。提供了减少对象数量从而改善应用所需的对象结构的方式使用场景系统有大量相似对象需要缓冲池的场景优点大大减少对象的创建,降低系统的内存,使效率提高缺点提高了系统的复杂度,需要分理出外部状态和内部状态,否则可能会引起线程安全问题这些类必须有一个工厂对象加以控制...原创 2019-10-25 15:11:25 · 120 阅读 · 0 评论