设计模式
苍山如海z
从头越,苍山如海,残阳如血
展开
-
设计模式 原型
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式,即Prototype,是指创建新对象的时候,根据现有的一个原型来创建。 举例:如果有一个String[]数组,想再创建一个一模一样的String[]数组,怎么写? 实际上创建过程很简单,就是把现有数组的元素复制到新数组。如果我们把这个创建过程封装一下,就成了原型模式。用代码实现如下: // 原型: String[] original = { "Apple", "Pear", "Banana" }; // 新对象: Stri原创 2020-05-23 17:38:04 · 107 阅读 · 0 评论 -
设计模式 工厂方法
目录 1.工厂方法 2.静态工厂方法 1.工厂方法 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。 工厂方法即Factory Method,是一种对象创建型模式。 工厂方法的目的是使得创建对象和使用对象是分离的,并且客户端总是引用抽象工厂和抽象产品 package com.learn.factorymethod; public interface Factory { Number parse(String s).原创 2020-05-12 19:05:30 · 213 阅读 · 0 评论 -
设计模式 类间关系
目录 类之间的关系 泛化关系(generalization) 实现关系(realize) 聚合关系(aggregation) 组合关系(composition) 关联关系(association) 依赖关系(dependency) 车的类图结构为<<abstract>>,表示车是一个抽象类; 它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示; 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示原创 2020-05-12 11:45:57 · 168 阅读 · 0 评论 -
设计模式 单例模式
单例模式 ——保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式(Singleton)的目的是为了保证在一个进程中,某个类有且仅有一个实例。 单例模式的实现方式很简单: 只有private构造方法,确保外部无法实例化; 通过private static变量持有唯一实例,保证全局唯一性; 通过public static方法返回此唯一实例,使外部调用方能获取到实例。 package com.learn.singleton; public class Earth { //静态原创 2020-05-10 22:41:00 · 187 阅读 · 0 评论 -
设计模式 观察者模式
观察者模式又称为发布订阅模式,是对象的行为模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监视着被观察者的状态,当被观察者的状态发生变化时,会通知所有观察者,并让其自动更新自己。 观察者模式更易于扩展,责任也更加清晰。首先,把每一个电商接口看成一个观察者,每一个观察者都能观察到产品列表(被监听对象)。当公司发布新产品时,就会发送到这个产品列表上,于是产品列表(被监听对象)就发生了变化,这时就可以触发各个电商接口(观察者)发送新产品到对应的合作电商那里,观察者模式示例如图所示。 类原创 2020-05-10 18:53:25 · 85 阅读 · 0 评论 -
设计模式相关
根据设计模式的参考书Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素)中所提到的,总共有 23 种设计模式。 这些模式可以分为三大类: 创建型模式(Creational Patterns) 结构型模式(Structural Patterns) 行为型模式(Behavioral Patterns) 创建型模式关注点是如何创建对象,其核心思想是要把对象的创建和使用相分离,这..原创 2020-05-10 10:57:49 · 100 阅读 · 0 评论 -
设计模式 责任链模式
目录 1.拦截器 2.责任链模式 1.拦截器 由于动态代理一般都比较难理解,程序设计者会设计一个拦截器接口供开发者使用,开发者只要知道拦截器接口的方法、含义和作用即可,无须知道动态代理是怎么实现的。 用JDK动态代理来实现一个拦截器的逻辑,为此先定义拦截器接口Interceptor package com.learn.interceptor; import java.lang.reflect.Method; public interface Interceptor { /**.原创 2020-05-09 23:02:27 · 149 阅读 · 0 评论 -
设计模式 动态代理模式
动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问。 商务和软件工程师是代理和被代理的关系,客户是经过商务去访问软件工程师的。此时客户就是程序中的调用者,商务就是代理对象,软件工程师就是真实对象。我们需要在调用者调用对象乙前产生一个代理对象,而这个代理对象需要和真实对象建立代理关系,所以代理必须分为两个步骤: ·代理对象和真实对象建立代理关系。 ·实现代理对象的代理逻辑方法。 在Java中有多种动态代理技术,比如JDK、CGLIB、Javassist、A...原创 2020-05-09 10:44:00 · 143 阅读 · 0 评论