Java设计模式
Cry_Kill
坚持自己的梦想
展开
-
Java设计模式--工厂方法模式&模拟工厂模式
概念 工厂模式就是实例化对象,用工厂方法来代替new操作,工厂模式包括工厂方法模式和抽象工厂模式,抽象工厂模式是工厂方法模式的拓展。 意图 工厂模式的意图就是定义一个接口来创建对象,但是让子类来决定哪些类需要被实例化,也就是说工厂方法把实例化的工作推迟到子类中去实现。 适用场景 有一组类似的对象需要创建 在编码时不能预见需要创建哪种类的实例 系统需要考虑扩展性,不应该依赖于产品类实例如何被创建、...原创 2018-12-08 17:34:08 · 425 阅读 · 0 评论 -
Java设计模式--适配器模式
概述 在生活中如果两个不同语言的人怎么沟通呢?翻译器。电源有二相插座,但是你是三相插头,那你这么充电呢?电源转换器。电脑想在不同的国家适用,但是每个国家的电压不同怎么办?电源适配器。这些物品就是我们适配器模式中的适配器。 概念 适配器模式定义:适配器模式将一个类的接口,转换成客户期望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作 Client:客户端 Target:目标...原创 2018-12-12 19:00:55 · 206 阅读 · 0 评论 -
Java设计模式--总括
设计模式就是一套被反复使用,多数人知晓的,经过分类编目的、代码设计经验的总结。使用设计模式主要的目的就是为了可重用代码、让代码更容易被他人理解。 设计模式主要分为三大类,共23种: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方...原创 2018-12-06 12:08:00 · 343 阅读 · 0 评论 -
Java设计模式--单例模式
在编程中有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等 如果我们创造出多个实例可能就会导致出很多问题:比如占用对多资源,在不同地方得到了不一致的结果等。 应用场合:有些对象我们只需要一个 作用:保证在整个应用程序中某个类的实例有且只有一个 类型:饿汉模式,懒汉模式 接下来我们就介绍一下这两种类型的编写,以及他们的有缺点: 饿汉模式就是在类装载的时候就完成实例化,这样的话,...原创 2018-12-06 15:17:40 · 162 阅读 · 0 评论 -
Java设计模式--责任链模式
概述 在人类社会中,责任链模式是天然存在的,比如在购置房产的社会,购房者会想要一定的折扣,但是根据买的量级的不同,享受的折扣也是不一样的。其实有时候我们会发现假如你认得这个房产公司的经理的话,你享受的折扣可能会比较大,这是为什么呢?因为房产公司是有层级关系的,大致可以分为:CEO->总监->经理->销售员。每个层级能打的折扣是不一样的,如果你不认识人的话,就只能按照你想要的折扣去...原创 2018-12-13 22:23:07 · 2653 阅读 · 0 评论 -
Java设计模式--策略模式
策略模式主要是抽象出不变的部分代码,然后定义算法簇将不同的算法分别封装起来,这就可以使得客户端不会受到算法改变的影响。这样对新增的需求就会由弹性支持,并不需要重构代码,只需要将该算法封装好就好了。其实官方的定义是策略模式将可变的部分从程序中抽象分离成算法接口,在该接口下分别封装一系列的算法实现,并且使得他们可以相互替换,从而导致客户端程序独立于算法的改变。 策略模式的实现 我们利用下面的例子来展示...原创 2018-12-06 22:27:13 · 166 阅读 · 0 评论 -
Java设计模式--观察者模式
概述 是不是你平时安装程序的时候都会让你选择是否订阅通知,或者我们在网上买东西的物流过程中,每到一个新的进度点都会进行更新,以及通知。其实这里就用到了我们的观察者模式。 概念 观察者模式:定义对象间的一种一对多的依赖关系。当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。 比如我们对于天气的订阅,是不是当我们的天气进行变化的时候,应用就会发出通知,告知我们天气的变化。图中的Su...原创 2018-12-16 21:48:58 · 210 阅读 · 0 评论 -
Java设计模式--模板方法模式
概述 在现实生活中,很多事情都是有一定的规章制度的,有一定的流程,比如去外面吃饭都是要经过这个流程:排队,点单,吃饭,买单。一般来说都是这些流程,其实每个吃饭流程不同的就是,点单你点了什么不同的东西。 但是对于排队,吃饭,买单基本不同的地方也是一样的套路。 所以类比到软件开发中去,也会遇到这种情况:某个方法的实现需要多个步骤(外面吃饭),其中的几个步骤是一样的,固定不变的(排队,吃饭,买单),也有...原创 2018-12-11 17:47:56 · 565 阅读 · 0 评论 -
Java设计模式--代理模式
概述 我们平常买火车票的时候是不是就只有三种方式:火车站售票厅,火车票代售处,网上购票,但是在很多年前的话就是前两种方式。其实火车票代售处就是火车站售票厅的代理,并且火车票代售处可以提供额外的服务,比如电话预约,并且我们知道火车票代售处是不负责票的退换的,所以这就要说到代理模式的几种模式了(请看概念)。 概念 代理模式:为其他对象提供一种代理,以控制对这个对象的访问。代理对象起到中介作用,可去掉功...原创 2018-12-24 18:01:55 · 448 阅读 · 0 评论