设计模式
文章平均质量分 65
编程录
这个作者很懒,什么都没留下…
展开
-
设计模式笔记之访问者模式的使用
<其它设计模式介绍及案例源码下载 >简介:在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者的不同而改变。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。主要解决:稳定的数据结构和多变的逻辑操作耦合问题,主要将数据结构与数据操作分离。优点: 1、符合单一...原创 2018-11-18 20:26:27 · 140 阅读 · 0 评论 -
常见Gof设计模式(包括5种创建型、7种结构型、11种行为型)
说明:文末可下载案例源码 创建型(为类实例化提供指南)原型模式 原型模式(Prototype Pattern)是用于创建重复的对象,并且与重新new对象相比较,性能更高。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直...原创 2018-11-23 17:43:07 · 936 阅读 · 0 评论 -
设计模式笔记之命令模式的使用
<其它设计模式介绍及案例源码下载 >简介:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等...原创 2018-11-23 19:56:22 · 136 阅读 · 0 评论 -
设计模式笔记之构造器模式的使用
<其它设计模式介绍及案例源码下载 >简介:构造器模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。一个 Builder 类会一步一步构造最终的对象。该 Builder 类无需通过其他对象完成构造,独立于其他对象的。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,...原创 2018-11-22 16:35:33 · 702 阅读 · 0 评论 -
设计模式笔记之装饰模式的使用
<其它设计模式介绍及案例源码下载 >简介:装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。主要解决:为了扩展一个类通常使用继承方式实现,由于继承为类引入静态特征,并且随...原创 2018-11-19 15:30:01 · 145 阅读 · 0 评论 -
设计模式笔记之代理模式的使用
<其它设计模式介绍及案例源码下载 >简介:在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。主要解决:在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦...原创 2018-11-19 16:49:30 · 147 阅读 · 0 评论 -
设计模式笔记之适配器模式的使用
<其它设计模式介绍及案例源码下载 >简介:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立模块的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。主要解决:在不修改类结构的前提下,使一个类增加另外一个接口的功能。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作...原创 2018-11-19 19:23:05 · 150 阅读 · 0 评论 -
设计模式笔记之原型模式的使用
<其它设计模式介绍及案例源码下载 >简介:原型模式(Prototype Pattern)是用于创建重复的对象,并且与重新new对象相比较,性能更高。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。主要解决:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。优点: 1、性能提高。 2、逃避构造函数的约束。...原创 2018-11-22 18:25:43 · 180 阅读 · 0 评论 -
设计模式笔记之享元模式的使用
<其它设计模式介绍及案例源码下载 >简介:享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。意图:运用共享技术有效地支持大量细粒度的对象。主要解决:在有大量对象时,有可能会造成内存溢出,我们把其中可重用对象在创建后保存起来,当再次需要时,直接返回在内存中已有...原创 2018-11-23 08:46:04 · 186 阅读 · 1 评论 -
设计模式笔记之外观模式的使用
<其它设计模式介绍及案例源码下载 >简介:外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供一个客户端可以访问系统的接口。它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。主要解决:降低访问复杂系统的内部各个子系统时的复杂度,为子系统中的一组接口提供一个一致的界面,外观模式...原创 2018-11-23 10:26:35 · 149 阅读 · 0 评论 -
设计模式笔记之解释器模式的使用
<其它设计模式介绍及案例源码下载 >简介:解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。主要解决:给定一个文本语言,定义它的文法表示,并定义解析文本的若干个文本解释器,这些解释器使用特定文法规则标识来解释语言中的句子...原创 2018-11-24 15:29:50 · 270 阅读 · 0 评论 -
设计模式笔记之职责链模式的使用
<其它设计模式介绍及案例源码下载 >简介:责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。主要解决:避免请求发送者与接收者耦合在一起...原创 2018-11-23 15:20:33 · 155 阅读 · 0 评论 -
设计模式笔记之单例模式的使用
<其它设计模式介绍及案例源码下载 >简介:单例模式(Singleton Pattern)涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。主要解决:一个全局使用的类实例频繁地创建与销毁。优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学...原创 2018-11-22 10:41:54 · 143 阅读 · 0 评论 -
设计模式笔记之抽象工厂模式的使用
<其它设计模式介绍及案例源码下载 >简介:抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。主要解决:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。何时使用:系...原创 2018-11-21 18:58:30 · 227 阅读 · 0 评论 -
设计模式笔记之中介者模式的使用
<其它设计模式介绍及案例源码下载 >简介:中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。主要解决:对象与对象之间存在大量的关联关系,当对象太多这样势必会导致系统形成一个复杂的网状关系结构,同时若一个对象发生改变,我们也需要跟踪与...原创 2018-11-20 15:48:11 · 229 阅读 · 0 评论 -
设计模式笔记之组合模式的使用
<其它设计模式介绍及案例源码下载 >简介:组合模式(Composite Pattern),又叫部分整体模式,是用于把一复合对象(对象中引用其他对象)当作一个单一简单的对象。组合模式依据树形结构来组合对象,主要解决:将对象组合成树形结构以表示"部分-整体"的层次结构,模糊了简单元素和复杂元素的概念组合模式使得用户对单个对象和组合对象的使用具有一致性。优点: 1、高层模块调用简...原创 2018-11-20 16:40:05 · 158 阅读 · 0 评论 -
设计模式笔记之模板模式的使用
<其它设计模式介绍及案例源码下载 >简介:在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。主要解决:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。优...原创 2018-11-20 17:10:27 · 146 阅读 · 0 评论 -
设计模式笔记之策略模式的使用
<其它设计模式介绍及案例源码下载 >简介:在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。主要解决:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互...原创 2018-11-20 19:02:55 · 137 阅读 · 0 评论 -
设计模式笔记之备忘录模式的使用
<其它设计模式介绍及案例源码下载 >简介:备忘录模式(Memento Pattern)保存一个对象的某个状态。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。主要解决:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。优点: 1、给用户提供了一种可以恢复状态的机制,可以使用户能够比...原创 2018-11-20 21:11:28 · 155 阅读 · 0 评论 -
面向对象设计七大原则
<24种常见设计模式介绍及案例源码下载 >1. 单一职责原则(Single Responsibility Principle)每一个类应该专注于做一件事情。2. 里氏替换原则(Liskov Substitution Principle)超类存在的地方,子类是可以替换的。3. 依赖倒置原则(Dependence Inversion Principle)实现尽量依赖...转载 2018-11-21 09:42:25 · 129 阅读 · 0 评论 -
设计模式笔记之迭代器模式的使用
<其它设计模式介绍及案例源码下载 >简介:迭代器模式(Iterator Pattern)是用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。主要解决:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。优点: 1、它支持以不同的方式遍历一个聚合对象。 2、迭代器简化了聚合类。 3、在同一个聚合上可以有多个遍历。 ...原创 2018-11-21 11:18:21 · 168 阅读 · 0 评论 -
设计模式笔记之状态模式的使用
<其它设计模式介绍及案例源码下载 >简介:在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。主要解决:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。使对象看起来好像修改了它的类内部实现。...原创 2018-11-19 09:41:26 · 191 阅读 · 0 评论 -
设计模式笔记之简单工厂模式的使用
<其它设计模式介绍及案例源码下载 >简介:简单工厂模式(SimpleFactory Pattern)提供了一种创建对象的最佳方式,属于创建型模式,但不属于23种GOF设计模式之一。在简单工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,是由一个工厂对象决定创建出哪一种产品类的实例。(有一种分法说简单工厂模式是工厂方法的一个特例)三种角色组成:工厂类角色:这是本模式的核心,含...原创 2018-11-21 15:52:49 · 167 阅读 · 0 评论 -
设计模式笔记之观察者模式的使用
<其它设计模式介绍及案例源码下载 >简介:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知...原创 2018-11-19 11:38:45 · 112 阅读 · 0 评论 -
设计模式笔记之工厂方法的使用
<其它设计模式介绍及案例源码下载 >简介:工厂方法(FactoryMethod)不在工厂类中进行逻辑判断,程序可以为不同产品类提供不同的工厂,不同的工厂类产不同的产品。当使用工厂方法设计模式时,对象调用者需要与具体的工厂类耦合四种角色组成: 抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接...原创 2018-11-21 17:48:42 · 217 阅读 · 0 评论 -
设计模式笔记之桥接模式的使用
<其它设计模式介绍及案例源码下载 >简介:桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。主要解决:实现系统可能有多个角度分类,每一种角度有多种可能会变化的情况下用继承会造成类爆炸问题,扩展起来不灵活,那么把这种多角度分类给分离出来让他们独立变化,减少他们之间耦合。优点: 1、抽...原创 2018-11-20 14:23:40 · 185 阅读 · 0 评论