![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
wu_yangchun
只要开始,永远不晚。
展开
-
设计模式之适配器模式
设计模式之适配器模式功能: 将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适用场景: 1、已经存在的类的接口不符合我们的需求; 2、创建一个可以复用的类,使得该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作; 3、在不对每一个都进行子类化以匹配它们的接口的情况下,使用一些已经存在的子类。 类原创 2017-04-28 17:00:32 · 208 阅读 · 0 评论 -
设计模式之抽象工厂模式
http://lavasoft.blog.51cto.com/62575/11674/ 1.3 抽象工厂(Abstract Factory)模式 抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。 每个模式都是针对一定问题的解决方案。抽象工厂模式面对的问题是多产品等级结构的系统设计。转载 2017-04-27 15:41:45 · 291 阅读 · 0 评论 -
设计模式之工厂模式
介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。应用实例:1、您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 2、原创 2017-04-27 15:27:40 · 199 阅读 · 0 评论 -
设计模式之策略模式
意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。 何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。 如何解决:将这些算法封装成一个一个的类,任意地替换。 关键代码:实现同一个接口。 优点: 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。 缺点:原创 2017-05-16 14:35:19 · 351 阅读 · 1 评论 -
设计模式之外观模式
外观模式外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 主原创 2017-05-04 11:26:26 · 338 阅读 · 0 评论 -
设计模式之原型模式
转自:http://blog.csdn.net/zhengzhb/article/details/7393528 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Clone转载 2017-04-21 15:48:54 · 187 阅读 · 0 评论 -
设计模式之建造者模式
设计模式之建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 介绍 意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 主要解决:主要解决在软件系统中,有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这原创 2017-04-21 15:02:28 · 237 阅读 · 0 评论 -
设计模式之装饰器模式
装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。意图:动态地给一个对象原创 2017-05-03 15:19:00 · 249 阅读 · 0 评论 -
设计模式之桥接模式
设计模式之桥接模式特点 将抽象部分与实现部分分离,使他们都可以独立地进行变化。为了达到让抽象部分和实现部分独立变化的目的,抽象部分会拥有实现部分的接口对象,有了实现部分的接口对象之后,就能够通过这个接口来调用具体实现部分的功能。桥接在程序上就体现成了抽象部分拥有实现部分的接口对象,维护桥接就是维护这个关系,也就是说,桥接模式中的桥接是一个单方向的关系,只能够抽象部分去使用实现部分的对象,而不能反过原创 2017-04-28 17:29:34 · 441 阅读 · 0 评论 -
设计模式之代理模式
代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍 意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要原创 2017-05-03 10:24:35 · 226 阅读 · 0 评论 -
设计模式之单例模式(重点)
设计模式之单例模式单例模式的用途 单例模式保证了系统中某个类只有一个实例,而且自行实例化并向整个系统提供自己。在计算机系统中,线程池、日志对象、缓存、对话框、打印机等都被设计成单例。spring默认也是单例模式,单例模式一方面可以控制实例产生的数量,提高垃圾回收的效率,另一方面也可以作为通信的媒介,使不同线程实现通信。 单例模式的写法: 关键是用private关键字修饰构造函数,使程序中不能通原创 2017-04-18 22:30:28 · 282 阅读 · 0 评论 -
设计模式整理
用百度脑图对常用设计模式进行了整理,在github上对这几种设计模式进行了代码样例实现。github地址 脑图地址原创 2018-07-24 19:47:45 · 141 阅读 · 0 评论