23种设计模式总结
文章平均质量分 64
java常用23种设计模式总结
19年,重新开始写
求学之路,泛结良师,广交益友
展开
-
23中设计模式总结八追加:代理模式之动态代理
静态代理与动态代理的区别静态代理与动态代理的主要区别在于:静态代理通常只负责代理一个指定的类,而动态代理可以用于代理一系列类,这一系列类通常都实现了同一个接口可以将静态代理看成是java中定义的常量,动态代理可以看成是java中定义的变量,在编译期可以确定常量的值,而变量的值需要在运行期才可以确定。对应的代理也是一样,静态代理事先知道要代理的是什么,而动态代理不知道要代理的是什么东西,只有在运行时才原创 2017-11-29 00:03:31 · 446 阅读 · 0 评论 -
java设计模式总结十:享元模式
享元模式定义享元模式(Flyweight Pattern),又称轻量级模式(这也是其英文名为FlyWeight的原因),通过共享技术有效地实现了大量细粒度对象的复用。享元模式简单的说就是共享,举个例子,有十个人需要用笔,这十个人不是同时需要使用,这时候我们没有必要拿出十只笔,可以从1开始依次拿给他们,当不够的时候再拿,这里用到的就是享元模式的概念:共享现在,面向对象技术虽然可以很好的解决一些灵活性问转载 2017-11-02 16:53:12 · 699 阅读 · 0 评论 -
java设计模式总结九:合成模式
合成模式定义合成模式,也叫树形模式,就是把部分和整体的关系通过树形结构来表示,使得客户端对单个对象和组合对象的使用具有一致性合成模式也是继承的另一种替代方法合成模式组成结构合成模式主要由三个部分组成:抽象类、叶子类和父类1.抽象类:这是一个抽象角色,它给参加组合的对象定义出公共的接口以及默认的行为,组合对象的名义父类可以通过它来管理所有的子对象,而不需要通过继承2.叶子类:名义上的子类,通过实现接口原创 2017-11-02 16:05:50 · 795 阅读 · 0 评论 -
java设计模式总结八:代理模式
代理模式定义代理模式就是给一个对象提供一个代理对象,由这个代理对象控制对原对象的引用,使代理类在客户端和原对象之间起到一个代理的作用在不适用代理模式的情况下我们将两个类进行关联时,就需要在一个类的代码中直接调用另一个类,后续如果需要进行特殊的处理,就需要直接在该类中修改代码,这违背了设计模式的开闭原则,并且当很多类需要进行相同的特殊处理的时候,每一个类都必须编写相同的处理代码,无法实现代码的复用而在原创 2017-11-02 13:29:44 · 506 阅读 · 0 评论 -
java设计模式总结七:门面模式
门面模式定义门面模式也称外观模式,门面模式实现了子模块和客户端之间的松耦合关系,从而屏蔽了子模块内部的实现细节。只是将客户端需要的接口提供给客户,这样一来子模块组件如果发生变化,修改接口就可以了,不会影响到客户端的使用。简单来说就是把一系列复杂的流程封装成一个接口供给客户端更简单的使用门面模式三种角色子系统角色,客户角色和门面角色, 其中门面角色可以看成是一个中间件,用于实现客户端间接调用子系统提供原创 2017-11-01 18:29:43 · 732 阅读 · 0 评论 -
java设计模式总结六:适配器模式
适配器模式定义举一个例子简单的理解:当我们的电脑外接一个vga接口的显示屏时,如果我们的电脑本身没有vga接口,只有hdmi,这时候就需要使用一个转接口将vga转成hdmi接口,从而让电脑连接。这里的转接口就是一个适配器,解决的办法就是一种适配器模式在程序开发中,当一个系统需要使用另一个系统提供的外部接口,而这个外部接口与目前系统使用的不兼容时,就需要使用适配器模式。适配器模式就是将一个系统的接口转原创 2017-11-01 13:29:22 · 610 阅读 · 0 评论 -
java设计模式总结五:创建者模式
创建者模式定义创建者模式就是将一个对象的创建和表示分离,使得同样的构建过程可以有不同的表示,而且客户端不需要知道对象的构建细节在书中第二条提到:遇到多个构造器参数时考虑使用构建器,其实这里的构建器说的就是创建者模式创建者模式组成角色1.Builder:为创建一个产品对象的各个部件指定抽象接口public interface HTMLBuilder{ void buildHead();原创 2017-11-01 11:32:08 · 668 阅读 · 0 评论 -
java设计模式总结四:原型模式
原型模式定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。它属于创建型模式。原型模式主要用于实现对象的复制原型模式简单的说就是:通过一个原型对象来表明要创建的对象类型,然后通过复制这个原型对象的方法来创建同类型的对象原型模式的使用场景假设对于一个产品的再生产,每次都生产同样的产品,可以使用如下代码实现://产品类 public class Product{ private i原创 2017-11-01 09:59:28 · 609 阅读 · 0 评论 -
java设计模式总结三:单例模式
单例模式定义 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例 单例模式的实现方式:懒汉式实现,不过多线程下不安全 public class Singleton { private static Singleton instance;原创 2017-10-06 14:29:09 · 400 阅读 · 0 评论 -
java设计模式总结二:工厂模式
工厂模式定义 工厂模式用于实现工厂方法代替new来创建实例化对象,简单的说就是由一个工厂类根据传入的参数来选择创建哪一种的产品类 在任何需要使用多态的原理根据不同的信息生成不同的对象的场景下都可以使用工厂模式工厂模式四个角色: 工厂类角色:是具体产品类角色直接调用者。 抽象产品角色:接口或抽象类,负责具体产品角色的定义,及与客户端的交互。 具体产品角色:原创 2017-10-06 14:32:45 · 438 阅读 · 0 评论 -
java设计模式总结一:简介和原则
设计模式分类设计模式分为三大类:创建型模式、结构型模式和行为型模式创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类转载 2017-10-28 00:06:19 · 371 阅读 · 0 评论