23种设计模式
bin_coder
不要放弃,坚持、坚持、再坚持
展开
-
单例模式---饿汉式
package com.golf;/** * 单例模式——饿汉式 * @author 26920 * */public class SingletonDemo01 { //类加载时初始化该对象,线程安全,跟Java类加载器加载过程有关,效率高,没有延迟加载 private static SingletonDemo01 instance=new SingletonDemo01();...原创 2018-09-10 11:28:43 · 89 阅读 · 0 评论 -
单例模式——懒汉式
有延迟加载,线程安全(有加同步锁),效率较低package com.golf;/** * 单例模式——懒汉式 * @author 26920 * */public class SingletonDemo02 { private static SingletonDemo02 instance; //构造器私有化 private SingletonDemo02(){ ...原创 2018-09-10 11:41:12 · 187 阅读 · 0 评论 -
单例模式——静态内部类
有延迟加载,线程安全,效率高package com.golf;/** * 单例模式——静态内部类 * @author 26920 * */public class SingletonDemo03 { //有延迟加载,线程安全,效率高 private static class nestClass{ private static SingletonDemo03 instanc...原创 2018-09-10 15:41:59 · 109 阅读 · 0 评论 -
单例模式——枚举式
没有延迟加载,线程安全,效率高package com.golf;/** * 单例模式——枚举式 * @author 26920 * */public enum SingletonDemo04 { //枚举式是天然的单例模式 Instatce;} ...原创 2018-09-10 15:49:56 · 201 阅读 · 0 评论 -
设计模式——工厂模式
1.工厂模式的主要目的是:实现了调用者和创建者分离,实例化对象,使用工厂类方法来替代new操作,将实现类,创建对象统一管理和控制。从而将调用者和实现类进行解耦。2.工厂模式 类型:简单工厂模式:用来生产已知的产品(对于新增的产品需要修改工厂类,违背了面向对象的ocp原则),示例代码链接简单工厂模式代码。 工厂方法模式:弥补了简单工厂模式中违背了OCP原则,对于新增的产品不需要修改之前的代...原创 2019-05-08 17:19:32 · 253 阅读 · 0 评论 -
工厂模式——简单工厂模式
1.本文以造车为例,写了1个接口,2个实现类,1个工厂类和1个客户端。示例代码如下:package com.xiaobi.golf.factory;public interface Car { String run();}package com.xiaobi.golf.factory;public class BydCar implements Car{ ...原创 2019-05-08 14:29:17 · 128 阅读 · 0 评论 -
工厂模式——抽象工厂模式
1.UML图2.代码如下package com.xiaobi.golf.factory.abstractMethod;/** * 引擎实体 */public interface Engine { void start(); void run();}class LowEngine implements Engine{ @Override ...原创 2019-05-08 17:18:33 · 108 阅读 · 0 评论 -
如何使用反射破解单例模式(不包括枚举单例)
1.本题中使用破解懒汉模式,代码如下:package com.xb.golf4;/** * 利用反射和反序列化破解单例(不包括枚举)模式 *懒汉式 * @author XieBin * */public class SingletonDemo02 { private static SingletonDemo02 instance; //构造器私有化 private ...原创 2019-05-06 10:51:59 · 321 阅读 · 2 评论 -
使用反序列化破解单例模式(不包含枚举式)
1.本章主要描叙使用反序列化来破解单例模式,代码还是使用反射破解单例模式上面的代码。2.测试代码如下:package com.xb.golf4;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectO...原创 2019-05-06 20:45:56 · 191 阅读 · 0 评论