设计模式--------》单例模式

> **第一次写博客,望各位大神多多指教.** 单例模式: 大意:通过对构造方法的私有化,确保整个JVM对于该类只存在唯一的一个实例化对象; 作用:采用单例模式,能够很好的减少系统开销;通过减少new关键字的使用,能够有效的减少gc发生的频率,以及缩短gc的周期; 实现方式: 1)饿汉式:通过JVM对static的初始化机制,解决了线程安全的问题,但是无法租到延迟加载。 public
阅读本文

设计模式(十一): 模板模式

模板模式在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。介绍意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一方法。何
阅读本文

设计模式(十二): 外观模式

外观模式外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。介绍意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要
阅读本文

设计模式(九): 观察者模式

观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象
阅读本文

设计模式(七): 迭代器模式

迭代器模式迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。介绍意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。主要解决:不同的方式来遍历整个整合对象。何时使用:遍历一个聚合对象。如何解决:把在元素之间游走的责任交给迭代
阅读本文

设计模式(六): 建造者模式

建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着“一个复杂对象“
阅读本文

设计模式四--建造者模式

设计模式四--建造者模式一、定义将一个复杂对象呢的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二、优点封装性建造者独立,容易扩展 三、原理图 Product代表具体的产品ConcreteBuilder是这些产品建造过程的一个接口Builder是这些产品的具体建造实例,实现ConcreteBuilder接口Director包含不同的Builder,负责构造各个产品 四、实例1、Com
阅读本文

设计模式知我所见。。。

一,桥连模式二,桥连模式外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。
阅读本文

设计模式(五): 装饰者模式

装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。介绍意图:动态地给一个对象添
阅读本文

设计模式(八): 策略模式

策略模式在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。介绍意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...
阅读本文

常用设计模式的小结和实际中的应用

1.单例模式(Singleton): 保证一个类仅有一个实例,并提供一个访问它的全局控制点. 比如在加载配置文件时, 可使用该模式. 2.工厂模式(Factory): 定义一个用以创建对象的接口, 让子类决定实例化哪个类. 当遇到需要根据某个前提条件创建不同的类实现时, 会实用工厂模式.  3.抽象工厂模式(Abstract Factory): 提供一个创建一系列相关或相互依赖对象的接口, 而无需
阅读本文

设计模式(二): 工厂模式

工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何
阅读本文

设计模式(三): 抽象工厂模式

抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
阅读本文

设计模式_观察者模式

观察者模式观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。类图:可执行代码:#ifndef _OBSERVER_H_ #define _OBSERVER_H_ #include<iostream> #incl
阅读本文

设计模式_命令模式

命令模式:  将一个请求封装为一个对象(即我们创建的Command对象),从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。 解决的问题:  在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。 类图:实例:请求计算机画出不同的图形.将计算机当作命
阅读本文

设计模式之回调模式

类B中有一个方法f,f有一个参数的类型是CallBack,方法f中调用CallBack方法public interface Callback { public void getName(String name); }public class B { public void fB(Callback clallback){ clallback.getName(“A“); } }public
阅读本文

【DM】设计模式总括-原则篇

写在前面的 设计模式的灵魂 三兄弟 开放-封闭 依赖倒转 迪米特 总结 写在前面的    感谢上天又给了我一次学习设计模式的机会,正是这次的系统学习,可以说让我领略到了设计模式的真谛,23个设计模式已经在我脑海中已经变得那么的亲切,也让我觉得对这23个设计模式可以融会贯通,真的是一件非常非常值得高兴的事情。    说到这里,自己在之前总结的几个实模式就已经太过于LOW了,只是总结
阅读本文

小程序点餐系统开发模式设计详解

扫码点餐+微信支付+会员,一个小程序就搞定  据了解,小程序将点餐+会员+支付+支付代金券等几大能力聚合,到店顾客只需打开【微信】-【扫一扫】餐桌上的二维码即可进入小程序开始点餐,菜品和数量选择完毕后用微信支付在小程序内就能快速完成买单。借助小程序+微信支付,顾客可以体验到更加快速、流畅的自助点餐及支付方式。  一、微信小程序二维码点餐系统是什么?  每个餐桌都有专属二维码,商家从后台
阅读本文