Java 设计模式
Java 设计模式学习
TizzyGoodhealth
反派角色
展开
-
设计模式之一【适配器模式】
java设计模式之适配器模式 1介绍 1.1定义 适配器 相当于一个包装类 , A类无法直接操作B类 , 通过C类去操作B类 , 这个C类就相当于包装类进而就是我们所说的适配器了 。 1.2 作用 A,B 两种接口互相兼容,不匹配,只能通过一个适配器来将A接口转换为B所希望的接口类型。 适配器模式使得原本不兼容不能一起工作的接口可以一起工作。 1.3解决的问题 解决了两种不同类型的接口或...原创 2018-12-20 14:33:47 · 172 阅读 · 0 评论 -
设计模式之一【建造者模式】
java设计模式之建造者模式 建造者模式也属于创建型模式之一,也是用来创建对象的。 建造者模式就是一步一步的创建一个复杂的对象,建一个复杂的对象与其表示分离,使得同样的构建可以创建不同的表示。 建造过程中可以分为三个角色: 建造角色:定义生成实例对象需要的方法; 具体的建造的角色:实现生成实例所需要的所有方法,并且生成获取最终实例对象的方法; 监工角色:有监工定义并且调用具体的建造的角色中生成实...原创 2018-12-19 13:29:31 · 117 阅读 · 0 评论 -
设计模式之一【代理模式】
设计模式之代理模式 所谓代理模式指的是一个类代表另一个类的功能。 首先创建一个学生类,此学生类拥有做作业的行为方式,然后通过一个代理类去帮助学生做作业。 public class Stu { public void test(String s) { System.out.println("user" + s); } } 创建一个代理类 public cl...原创 2018-12-03 22:00:06 · 125 阅读 · 0 评论 -
设计模式之一【原型模式】
java设计模式之建造者模式 原型模式属于创建型模式之一,用于创建重复的对象,即可以保证性能又能创建对象! 什么时候采用此种设计模式,当我们创建对象代价比较大的时候,我们就可以采用这种方法,用来创建对象。 原意义上是通过对对象的拷贝从而达到创建对象的目的。 具体实现步骤: 首先创建一个抽象接口类: /** * 原型模式 * 当创建对象代价较大时采用这种模式,创建对象。 * 用原型实例指定创建...原创 2018-12-19 09:55:37 · 110 阅读 · 0 评论 -
设计模式之一【单例模式】
单例模式属于创建型模式,负责创建对象,确保始终创建的对象是唯一的,是单个的(内存地址唯一性)。 单例模式有两种懒汉是和饿汉式 创建方式: 1 私有的构造方法 2 对象唯一性采用static 3 对外提供公开访问对象方法 饿汉式 public class SingletonTest { private SingletonTest(){} priv...原创 2018-11-26 11:23:17 · 124 阅读 · 0 评论 -
设计模式之一【工厂模式】
工厂模式 属于是java设计模式之一。这种模式属于创建型模式,提供创建对象的最佳方式。 通过一个接口来指向新创建的对象。 定义一个接口,让子类自己去决定实例化那个对象。 定义颜色接口 public interface Color { public void test(); } 分别实现这个接口 public cla...原创 2018-11-26 10:48:36 · 104 阅读 · 0 评论 -
设计模式之一【抽象工厂模式】
抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 简单的工厂模式是一个工厂创建跟这个工厂类型一致的对象...原创 2018-11-23 10:43:57 · 178 阅读 · 0 评论 -
设计模式之一【策略模式】
策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 策略模式是什么? 策略模式可以用来干什么? 我们再来看看策略模式可以用来定义一组规则,一...原创 2018-11-23 09:08:02 · 165 阅读 · 0 评论 -
设计模式之一【简单的工厂设计模式】
简单的工厂设计模式 记得在刚开始学习java时候,书上有这么一个例子:用Java实现一个计算器功能。 然后自己当时代码如下(不考虑输入的符号等): System.out.println("请输入第一个数:"); Scanner in = new Scanner(System.in); String str1 = in.next(); System....原创 2018-11-20 00:54:15 · 144 阅读 · 0 评论