设计模式
weixin_46008168
这个作者很懒,什么都没留下…
展开
-
代理模式
代理模式 定义:为其他对象提供一种代理,以控制对这个对象的访问。代理对象起到中介作用,可去掉功能服务或增加额外的服务。 举例:我想购买一个火车票,正常我们是去火车站进行买,但是,由于我们家比较远,我们可能去火车票代售点进行购买,而且,火车票代售点可能会有电话预约的额外功能,但是,可能不支持退票服务。就像我们的代理模式:去掉功能服务,增加额外服务。 常见代理模式 1.远程代理:比如说我有一个售货店,我可以通过远程代理监控各个店铺使之能直观的了解店内信息。 2.虚拟代理: 根据需要将资源消耗很大的对象进行延迟,原创 2020-11-04 14:09:27 · 91 阅读 · 0 评论 -
建造者模式
引用场景 假设有一个汽车产品,汽车有启动、停止、喇叭、引擎声、都是需要由用户自己控制,顺序和数量都需要由用户自己控制。 这个需求实现如下: package factory_mode.builder; import java.util.ArrayList; /** * 车辆模型的抽象类 * 使用模板方法 */ public abstract class CarModel { //这个参数是各个基本方法执行的顺序 private ArrayList<String> sequ原创 2020-08-20 15:16:22 · 70 阅读 · 0 评论 -
工厂模式
工厂模式 用工厂方法代替new操作 什么情况下适合工厂模式 1.有一组相似的对象需要创建(比如说:创建毛巾的工厂不能用来创建汽车) 2.在编码时不能预计需要创建那种类的实例(比如说,创建水果,但是需要创建的水果有很多,暂时不知道需要创建多少水果) 项目中的现状: 在软件系统中经常面临着,对象的创建工作,由于需求的变化,这个对象可能随之也会发生变化,但它却拥有比较稳定的接口。 为此,我们需要提供一种封装机制来隔离出这个易变对象的变化,从而保证系统中其他依赖该对象的对象不随着需求变化而变化。 ...原创 2020-08-19 20:14:24 · 99 阅读 · 0 评论 -
设计模式--单例模式
单例模式 单例模式:就是一直以来只有一个类的实例对象,有些对象只需要一个时候,比如配置文件、工具类、线程池、缓存、日志对象等。 如果创造出多个实例,就会导致许多问题,比如占用过多资源,不一样的结果等。 通过单例模式,保证整个应用中的某个实例有且只有一个。 饿汉模式 package Singleton; /** * 单例模式:Singleton * 应用场合:有些对象只需要一个就足够了。 * 作用:保证某个应用程序在某个实例有且只有一个。 */ public class Singleton {原创 2020-08-19 12:54:02 · 75 阅读 · 0 评论 -
设计模式-模板方法模式
生活中模板 比如说去银行办理业务 1.进门取号 2.填写单据 3.等待叫号 4.窗口办理 这是银行给我们提供的模板,大家都得遵守,但是呢?在填写单据的过程中,又存在着一些不同,这就是模板给我们一些发挥空间。 模板方法 模板方法会提供一些算法框架,但是一些特点步骤实现需要子类进行实现。留给特定子类来实现。 定义如下:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 使用场景分析: 会发现有很多共性,比如第一步和第三步; ...原创 2020-08-19 10:09:06 · 80 阅读 · 0 评论 -
面向接口编程
面向对象 面对对象三大特性,封装、继承、多态; 封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。 封装的好处:隐藏类的实现细节,让使用者只能通过程序员规定的方法来访问数据;可以方便的加入存取控制语句,限制不合理的操作; 继承:主要实现了重用代码,节省开发时间。 多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 面向接口编程 简单的说,就是类中,尽量不要写具体的类;这样如果要改需求的话,会很麻烦;尽量只写接口; 下面介绍两种常用场景来示范面向接口编程的优势; 简单工厂模式 首原创 2020-06-14 10:41:49 · 114 阅读 · 0 评论