
设计模式篇
Java设计模式学习
Coder编程
欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~
展开
-
23种设计模式之单例模式
一、什么是设计模式?设计模式是一套被反复使用,多数人知晓的、经过分类编目的、代码设计经验总结。目的:使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。二、为什么要使用单例模式?有些对象我们只需要一个,比如:配置文件、工具类、线程池、缓存、日志对象等。如果创建了多个实例,就会导致许多问题,比如:占用过多的资源、不一致的结果。三、原创 2016-07-29 20:12:14 · 398 阅读 · 0 评论 -
设计模式精讲 | 笔记 —— 序章
本专栏主要记录自己所学设计模式笔记。希望对大家有所帮助!目录导航设计模式精讲 | 笔记(一) | 快速入门UML设计模式精讲 | 笔记(二) | 理解软件设计七大原则设计模式精讲 | 笔记(三) | 简单工厂模式coding与源码分析设计模式精讲 | 笔记(四) | 工厂方法模式coding与源码分析设计模式精讲 | 笔记(五) | 抽象工厂模式coding与源码分析...原创 2019-02-18 14:34:26 · 403 阅读 · 0 评论 -
设计模式精讲 | 笔记(一) | 快速入门UML
注:本章节将介绍快速入门UML1.本章导航1.1 UML定义1.2 UML特点2.1 UML分类2.2 UML结构式图形2.3 UML行为式图形2.4 UML交互式图形3.1 UML类图4.1 记忆技巧...原创 2019-02-18 22:18:05 · 432 阅读 · 0 评论 -
设计模式精讲 | 笔记(三) | 简单工厂模式coding与源码分析
本章主要介绍简单工厂模式1.简单工厂定义2.简单工厂Coding视频的基类(是一个抽象类)public abstract class Video { public abstract void product();}有两个类继承它,并对里面的方法进行实现:public class JavaVideo extends Vid...原创 2019-03-10 21:47:36 · 256 阅读 · 0 评论 -
设计模式精讲 | 笔记(四) | 工厂方法模式coding与源码分析
本章主要介绍工厂方法模式。1.方法工厂模式介绍:2.方法工厂模式Coding:业务场景和之前的简单工厂一样,我们直接对简单工厂里面的代码进行改造:还是一样一个Video类public abstract class Video { public abstract void product();}Video类有两个子类:public class...原创 2019-03-11 21:39:47 · 308 阅读 · 0 评论 -
设计模式精讲 | 笔记(五) | 抽象工厂模式coding与源码分析
本章主要介绍抽象工厂模式。1.抽象工厂模式介绍工厂方法模式针对的就是产品等级结构而抽象方法模式针对的就是产品族我们只要在美的产品族里面取空调,取出来的肯定是美的的空调,我们在美的的产品族里面取冰箱,取出来的肯定也是美的的电冰箱,只要我们确定这个产品的产品族和产品等级结构,我们就可以唯一的确定这个产品。从理论上来说:当一个工厂可以创建出分属于不同产品等级...原创 2019-03-11 22:15:26 · 366 阅读 · 0 评论 -
设计模式精讲 | 笔记(二) | 理解软件设计七大原则
本章主要介绍软件设计七大原则1.本章导航2.开闭原则理解实现开闭原则的核心思想就是面向抽象编程而不是面向具体的实现编程。2.1开闭原则coding1.首先定义一个课程的接口:public interface ICourse { Integer getId(); String getName(); Double getPrice();...原创 2019-03-07 22:40:18 · 340 阅读 · 0 评论 -
设计模式篇(七)—— 代理模式
1.代理模式基本介绍代理模式的定义代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举例说明假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的。明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决。 2.代理模式分类介绍2.1静态...原创 2018-08-17 16:30:44 · 246 阅读 · 0 评论 -
设计模式篇(四)—— 装饰者模式
1.装饰者模式基本介绍动态地将责任附加到对象上,对扩展功能来说,装饰者比继承更有弹性更灵活(因为子类继承父类扩展功能的前提,是已知要扩展的功能是什么样的,而这是在编译时就要确定的,但是装饰者模式可以实现动态(在运行时)去扩展功能)。例如:有一家店卖饮品,饮品就有不少种,每一种还可以加项,比如给可乐加冰,加糖,兑水什么的,每次加项的价格还不同,就会将代码弄的很繁琐,这种情况下就可以使用装饰者...原创 2018-08-13 17:31:06 · 251 阅读 · 0 评论 -
JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部转载 2017-04-10 14:19:02 · 262 阅读 · 0 评论 -
JAVA设计模式之抽象工厂模式
本文继续介绍23种设计模式系列之抽象工厂模式。前面已经介绍过简单工厂模式和工厂方法模式,这里继续介绍第三种工厂模式-抽象工厂模式,还是以汽车的制造为例。例子背景:随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列的产品:空调和发动机。宝马320系列配置A型号空调和A型号发动机,宝马230系列配置B转载 2017-04-10 14:20:03 · 322 阅读 · 0 评论 -
几种常用的设计模式介绍
几种常用的设计模式介绍1. 设计模式的起源最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重转载 2017-06-26 09:40:49 · 782 阅读 · 0 评论 -
JAVA设计模式之桥接模式
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:转载 2017-12-20 11:20:49 · 308 阅读 · 0 评论 -
设计模式篇(五)—— 观察者模式
1.观察者模式基本介绍 观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,其实是由目标奖情况发送到观察者的。 使用场景:观察者模式多用于实现订阅功能的场景,例如微博的订阅,当我们订阅了某个人的微博账号,当这个人发布了新的消息,就会通知我们。 2.观...原创 2018-08-14 14:12:22 · 375 阅读 · 0 评论 -
设计模式篇(六)—— 策略模式
1.策略模式基本介绍 在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据应用场景的不同选择不同的算法或者策略来完成该功能。把一个类(A)中经常改变或者将来可能改变的部分提取出来,作为一个接口(B),然后在类(A)中包含这个接口(B),这样类(A)的实例在运行时就可以随意调用实现了这个接口的类(C)的行为。比如定义一系列的算法,把每一个算法封装起来, 并且使它们可相互...原创 2018-08-15 14:23:30 · 334 阅读 · 0 评论 -
设计模式篇(一)——二十四种设计模式,七种设计原则
1.什么是设计模式设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题...原创 2018-08-13 14:35:15 · 617 阅读 · 0 评论 -
设计模式篇(二)—— 单例模式
1.单例模式基本介绍单例模式:类只能有一个实例。 类的特点: 1、私有构造器; 2、内部构造实例对象; 3、对外提供获取唯一实例的public方法。 常见的单例模式实现有五种形式: 1、饿汉式。 2、懒汉式。 3、双重检查锁式。 4、静态内部类式。 5、枚举式。 2.五种形式分别介绍一、饿汉式饿汉式...原创 2018-08-13 15:25:44 · 250 阅读 · 0 评论 -
设计模式篇(三)—— 工厂模式及抽象工厂模式
1.工厂模式基本介绍工厂模式概念:工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 工厂模式,主要实现了创建者和调用者的分离。 分类:1、简单工厂模式;2、工厂方法模式;3、抽...原创 2018-08-13 17:11:04 · 367 阅读 · 0 评论