![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
福建选手阿俊
在无人问津的地方训练,在万众瞩目的地方出现
展开
-
Java设计模式类型——策略模式
文章目录1:需求2:传统方法2.1 传统的方式的分析和解决方案3:策略模式4:策略模式的注意事项和细节1:需求1)有各种鸭子(比如水鸭,北京鸭,鸭子有各种行为)2)显示鸭子信息2:传统方法思路Duck.classpublic abstract class Duck { public Duck() { } public abstract void display();/...原创 2020-01-16 13:25:25 · 644 阅读 · 2 评论 -
Java设计模式类型——模板方法模式
文章目录1:需求2:模板方法模式2.1 模板方法模式的钩子方法3:模板方法模式的注意事项和细节1:需求豆浆制作问题制作豆浆的流程选材–>添加配料–>浸泡–>放到豆浆机打碎2)通过添加不同的配料,可以制作出不同口味的豆浆3)选材、 浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是-样的4)所以我么可以使用使用模板方法模式完成(说明: 因为模板方法模式,比较简单...原创 2020-01-16 11:44:55 · 603 阅读 · 1 评论 -
小知识:动态代理对象的java.lang.reflect.Proxy/InvocationHandler/Method部分方法分析
1:java.lang.reflect. ProxyClass ProxyProxy提供了创建动态代理类和实例的静态方法,它也是由这些方法创建的所有动态代理类的超类。动态代理类 (以下简称为代理类 )是一个实现在类创建时在运行时指定的接口列表的类,具有如下所述的行为。 代理接口是由代理类实现的接口。 代理实例是代理类的一个实例。 每个代理实例都有一个关联的调用处理程序对象,它实现了接口In...原创 2020-01-15 23:11:38 · 626 阅读 · 0 评论 -
Java设计模式类型——代理模式
文章目录1 :代理模式1.1 静态代理1.1.1 静态代理优缺点1.2 动态代理(JDK代理、接口代理)1.3 Cglib 代理1.3.1 cglib代理模式实现步骤2:几种常见的代理模式介绍——几种变体1 :代理模式基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处:可以在目标对象实现的基础上,增强额外的功能操作即扩展目标对象的功能...原创 2020-01-15 22:32:15 · 454 阅读 · 0 评论 -
Java设计模式类型——桥接模式
文章目录1:需求2:使用传统方式2.1 使用传统方式优缺点3:桥接模式3.1 桥接模式解决手机操作问题4:桥接模式的注意事项和细节1:需求现在对不同品牌的手机类型实现操作编程(比如:开机,关机,上网等)2:使用传统方式使用传统方式思路2.1 使用传统方式优缺点扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加 一个手机品牌,也要...原创 2020-01-15 18:05:28 · 1300 阅读 · 7 评论 -
Java设计模式类型——适配器模式
文章目录1: 适配器模式1.1 类适配器模式1.1.1 类适配器模式的注意事项和细节1.2 对象适配器模式1.2.1 对象适配器模式的注意事项和细节1.3 接口适配器模式(缺省适配器模式)2: 适配器模式的注意事项和细节1: 适配器模式基本介绍适配器模式(Adapter Patterm)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类...原创 2020-01-15 15:14:47 · 455 阅读 · 0 评论 -
Java设计模式类型——建造者模式
文章目录1:需求2:使用传统方式2.1 传统方式优缺点3: 建造者模式4:建造者模式的注意事项和细节1:需求盖房项目需求需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然- -样,但是要求不要相同的请编写程序,完成需求.2:使用传统方式思路分析AbstractHouse.class//把产品(即:房子)和创建产品的...原创 2020-01-15 13:27:08 · 299 阅读 · 1 评论 -
Java设计模式类型——原型模式
文章目录1:需求2:传统方式解决克隆羊问题2.1 传统方式的优缺点3:原型模式4:浅拷贝介绍5:深拷贝介绍6:原型模式的注意事项和细节1:需求克隆羊问题:现在有一只羊,要求编写程序创建和此羊属性完全相同的2个羊2:传统方式解决克隆羊问题思路:Sheep.classpublic class Sheep { private int age; private String nam...原创 2020-01-15 09:14:32 · 381 阅读 · 2 评论 -
Java设计模式类型——工厂设计模式
文章目录需求1:使用传统方式1.1传统方式的优缺点2:使用简单工厂模式3:新需求4:工厂方法模式5: 抽象工厂模式6:工厂模式小结需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护1)披萨的种类很多(比如GreekPizz、 CheesePizz 等)2)披萨的制作有prepare, bake, cut, box3) 完成披萨店订购功能。**1:使用传统方式为了文章每一个部分更...原创 2020-01-15 00:26:17 · 442 阅读 · 1 评论 -
Java设计模式类型——单例设计模式
文章目录1:单例设计模式介绍2:单例设计模式八种方式2.1 饿汉式(静态常量)2.2 饿汉式(静态代码块)2.3 懒汉式(线程不安全)2.4 懒汉式(线程安全,同步方法)2.5 懒汉式(线程安全,同步代码块)2.6 双重检查2.7 静态内部类2.8 枚举3 :单例模式注意事项和细节说明1:单例设计模式介绍所谓类的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只可以存在一个对象实...原创 2020-01-14 15:29:53 · 654 阅读 · 8 评论 -
Java设计模式类型
设计模式分为三种类型,共23种创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享 元模式、代理模式。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者 模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模 式、策略模式、职责链模式(责任链模式)。...原创 2020-01-14 00:44:11 · 301 阅读 · 1 评论 -
UML——Unified modeling language UML (统一建模语言)
文章目录1: UML基本介绍2: UML图3: UML类图3.1 类图—依赖关系(Dependence)3.2 类图—泛化关系(generalization)3.3 类图—实现关系(Implementation)3.4 类图—关联关系(Association)3.5 类图—聚合关系(Aggregation)3.6 类图—组合关系(Composition)1: UML基本介绍UML——Unif...原创 2020-01-14 00:35:59 · 638 阅读 · 1 评论 -
Java设计模式七大原的核心思想
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代 码混在一起。针对接口编程,而不是针对实现编程。为了交互对象之间的松耦合设计而努力...原创 2020-01-14 00:11:14 · 282 阅读 · 0 评论 -
JAVA设计模式七大原则—— 合成复用原则
1:基本介绍原则是尽量使用合成(一个对象创建后,另一个对象同时创建好了)/聚合(set方法)的方式,而不是使用继承原创 2020-01-13 23:23:44 · 345 阅读 · 1 评论 -
JAVA设计模式七大原则—— 迪米特法则
1:基本介绍一个对象应该对其他对象保持最少的了解类与类关系越密切,耦合度越大迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的 越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内 部。对外除了提供的public 方法,不对外泄露任何信息迪米特法则还有个更简单的定义:只与直接的朋友通信直接的朋友:每个对象都会与其他对象有耦...原创 2020-01-13 23:15:10 · 349 阅读 · 1 评论 -
JAVA设计模式七大原则—— 开闭原则
文章目录1:基本介绍1:基本介绍开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用 方)。用抽象构建框架,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已 有的代码来实现变化。编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。...原创 2020-01-13 22:18:24 · 444 阅读 · 0 评论 -
JAVA设计模式七大原则—— 里氏替换原则
1:OO中的继承性的思考和说明继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契 约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实 现的方法任意修改,就会对整个继承体系造成破坏。继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵 入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承, 则当这个类需要修改时...原创 2020-01-13 20:31:34 · 321 阅读 · 0 评论 -
JAVA设计模式七大原则—— 依赖倒转原则
文章目录1:基本介绍2:依赖倒转原则的注意事项和细节1:基本介绍依赖倒转原则(Dependence Inversion Principle)是指:高层模块不应该依赖低层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象依赖倒转(倒置)的中心思想是面向接口编程依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的 多。以抽象为基础搭建的架构比以细节为基础的...原创 2020-01-13 17:43:09 · 381 阅读 · 2 评论 -
JAVA设计模式七大原则—— 接口隔离原则
基本介绍客户端不应该依赖它不需要的接 口,即一个类对另一个类的依赖 应该建立在最小的接口上我们先看一张图片传统方法是这么写的Segregation1.classpublic class Segregation1 { public static void main(String[] args) { // 使用一把 A a = new A(); a.depend...原创 2020-01-13 16:30:33 · 353 阅读 · 3 评论 -
JAVA设计模式七大原则—— 单一职责原则
基本介绍对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2我们看如下例子SingleResponsibility1.classpublic class SingleResponsibility1 { public static void main(String[] a...原创 2020-01-13 16:07:42 · 340 阅读 · 1 评论 -
Java设计模式七大原则
设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模 式的基础(即:设计模式为什么这样设计的依据)设计模式常用的七大原则有:1) 单一职责原则2) 接口隔离原则3) 依赖倒转(倒置)原则4) 里氏替换原则5) 开闭原则6) 迪米特法则7) 合成复用原则下面一一介绍每一个原则...原创 2020-01-13 13:47:15 · 271 阅读 · 3 评论 -
Java设计模式目的
编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重 用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好代码重用性 (即:相同功能的代码,不用多次编写)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)使程序呈现高内聚,低...原创 2020-01-13 13:45:33 · 484 阅读 · 1 评论 -
Java设计模式内容介绍
1:Java设计模式内容介绍设计模式的重要性软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现) 的各种问题,所提出的解决方案。 这个术语是由埃里希·伽玛(Erich Gamma)等人 在1990年代从建筑设计领域引入到计算机科学的大厦 VS 简易房拿实际工作经历来说, 当一个项目开发完后 ,如果客户提出增新功能,怎么办?如果项目开发完后,原来程序员离...原创 2020-01-13 13:42:27 · 218 阅读 · 0 评论