![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 63
用来记录和分享 “设计模式“ 相关知识点。
xing.tang
迷茫,只是因为想得太多,做得太少。
展开
-
【设计模式】单例模式
1、模式定义作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例特别:(1)单例模式只能有一个实例。(2)单例类必须创建自己的唯一实例。(3)单例类必须向其他对象提供这一实例。2、代码实现(1)双重加锁方式public class Singlnton{ private static volatile Singlnton instance; private Singlnton(){原创 2018-09-11 14:40:26 · 177 阅读 · 0 评论 -
【设计模式】Builder(建造者)模式
《Effective Java》第2条:遇到多个构造器参数时要考虑用构建器通俗点的来讲就是Java高效编程之Builder模式。静态工厂和构造器有个共同的局限性,它们都不能很好的扩展大量的可选参数,对于这样的类应该采用哪种构造器或者静态方法来编写更具有效率呢?示例:采用Robot(机器人)进行分析,Robot类有两个必要参数(id、name),有N个可选参数(speak、sing、...原创 2018-09-11 16:22:50 · 360 阅读 · 0 评论 -
【设计模式】观察者模式
1、模式定义观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。被观察者 订阅 观察者 => Observable Subscribe Observer2、代码实现// 观察者原创 2022-03-09 21:57:53 · 102 阅读 · 0 评论 -
【设计模式】简单工厂模式
1、模型定义简单工厂模式又称为静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。2、代码实现示例:使用华为或者小米手机拨打电话。public interface IPhone { void callPhone(String phoneNumber);}public class HuaweiPhone implements IPhone { @Ov原创 2022-03-03 13:55:43 · 101 阅读 · 0 评论 -
【设计模式】工厂方法模式
1、模型定义工厂方法模式又称为工厂模式,也叫虚拟构造器模式或者多态工厂模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。2、代码实现示例:使用华为或者小米手机玩游戏和拨打电话。public interface IPhone { void plamGame(String gameName); void原创 2022-03-09 21:59:08 · 131 阅读 · 0 评论 -
【设计模式】抽象工厂模式
1、模型定义抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为 Kit 模式,属于对象创建型模式。2、代码实现示例:采购商需要采购 x 台华为 P30 和150台华为 P30、x 台小米3和250台小米4。public interface IPhone { void plamGame(String gameName); void callPhone(String phoneNumber);}public class Hu原创 2022-03-09 22:00:13 · 149 阅读 · 0 评论 -
【设计模式】责任链模式
1、模式定义职责链模式:使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2、代码实现示例:员工出差报销费用,不同领导有不同的报销金额权限,组长5000元内,主管10000元内,经理20000元内,老板40000元内。/** * 员工抽象类 */public abstract class AbstractPerson { /** * 获取元具体的报销费用 *原创 2022-03-09 22:00:53 · 100 阅读 · 0 评论 -
【设计模式】代理模式
1、模式定义代理模式:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。静态代理:工程师编辑代理类代码,实现代理模式;在编译期就生成了代理类。基于 JDK 实现动态代理:通过jdk提供的工具方法 Proxy.newProxyInstance 动态构建全新的代理类(继承 Proxy 类,并持有 InvocationHandler 接口引用)字节码文件并实例化对象返回。(jdk 动态代理是由 java 内部的反射机制来实例化代理对象,并代理的调用委托类方法)还有基于其它实现动态代理,这里不做详原创 2022-03-09 22:01:54 · 124 阅读 · 0 评论