设计模式
Gaolw1102
这个作者很懒,什么都没留下…
展开
-
命令模式(Command)----设计模式
命令模式(Command)----设计模式命令模式,简单的讲,就是将**“命令动作的请求者"和"命令动作的执行者”**进行解耦,并要求请求可以撤销的。生活中也处处可见命令模式:老板发布一个命令,不是直接发布到了员工手中,而是发布给了秘书,具体怎么执行这个命令,交给秘书来完成;再或者一个多用遥控器,上面有很多的家用电器的开关按钮,此时你就可以通过这一个遥控器操控所有电器,而具体电器的开关不与你直接相关…文章目录命令模式(Command)----设计模式什么是命令模式?命令模式中的几个部分命令模式的原创 2020-09-07 22:26:16 · 300 阅读 · 0 评论 -
代理模式(Proxy)----设计模式
代理模式(Proxy)----Java设计模式代理模式,见文思义,即对一个类的对象进行代理,对其进行的行为进行检查扩充。文化起源于生活,代理就是受委托代表当事人进行当事人(这里指对象)应该做的一些活动。文章目录代理模式(Proxy)----Java设计模式What it is?常见的代理模式及结构静态代理实现源码动态代理实现源码总结What it is?什么是代理模式呢?通俗的讲,为使用此对象的对象提供一种代理以控制扩充对这个对象的使用访问。当一个对象不能直接交给或不适合直接被另一个对象调用原创 2020-08-23 17:50:37 · 262 阅读 · 0 评论 -
享元模式----设计模式
享元模式(FlyWeight)----设计模式享元模式,主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。文章目录享元模式(FlyWeight)----设计模式享元模式是什么?享元模式的结构案例演示代码演示总结享元模式是什么?享元模式,享即共享,元即对象,享元模式通俗的理解就是通过特定的手段实现对多次使用的对象进行共享,达到减少内存的占用和提高性能。嘿嘿,是不是听着有些像单例模式呢,其实不是的,单例模式原创 2020-08-22 17:06:51 · 239 阅读 · 0 评论 -
外观模式(Facade)----设计模式
外观模式(Facade)----设计模式文章目录外观模式(Facade)----设计模式什么是外观模式呢?外观模式的基本介绍制造一个影院管理?实现代码总结什么是外观模式呢?以我们中常见的案例说明,当我们需要安装win10电脑系统时,不需要了解安装系统的每一部分细节,交给固定程序进行安装即可;当我们去医院看病时,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便;等等…外观模式就是将事件内部具体的细节封装起来,使使用者能够更加方便地完成需原创 2020-07-27 16:18:10 · 281 阅读 · 0 评论 -
适配器模式(Adapter)----设计模式
适配器模式(Adapter)----设计模式文章目录适配器模式(Adapter)----设计模式What is it(它是什么)?适配器模式的工作原理适配器模式实现的三种方式适配器小案例以类适配器进行设计以对象适配器进行设计接口适配器、缺省适配器模式(自定义小案例)总结What is it(它是什么)?适配器模式(Adapter Pattern)是作为两个不兼容之间接口之间的桥梁。适配器模式来源于生活,例如,读卡器是作为内存卡和笔记本之间的适配器,电流转换插座是解决所需电压和实际电压不匹配的适原创 2020-07-23 16:05:44 · 142 阅读 · 0 评论 -
建造者模式(Builder)----设计模式
建造者模式(Builder)----设计模式文章目录建造者模式(Builder)----设计模式怎样得到每一辆车?开始结构化地制作每辆汽车高高工程师实施的流程总结(寻找灵魂的人)怎样得到每一辆车?自从上次高工程师,不对,高高工程师为汽车制造计划又提供了原型设计模式以后,就不但可以使用工厂模式使汽车工厂能够造出不同类型的汽车,而且还可以根据用户的需要生产出很多相同的汽车。汽车工厂得到了迅猛发展…但是在汽车生产的过程中,汽车老板并不想干预汽车生产的过程,他只想要车(Product)。于是他又叫来了原创 2020-07-20 21:05:21 · 194 阅读 · 0 评论 -
原型设计模式(prototype)----快速生产汽车
快速造汽车----原型模式文章目录快速造汽车----原型模式产汽车很累怎么办?高工程师来帮忙高工程师的法宝(实现原型模式)高工程师的最初具体实现(浅拷贝)劳斯莱斯的车型类劳斯莱斯车的生产信息类Information(表示第几辆车)生产操作测试类运行结果新的解决方案运行结果总结产汽车很累怎么办?上一次我们介绍了工厂模式(Factory),即用户可以通过提供具体的车型信息由工厂生产出来返回。后来竟然发现客户越来越少,工厂也入不敷出,甚至遭到了投诉,口碑极差,即将砸大门倒闭,这是为啥了呢?奥,原来是原创 2020-07-20 17:32:27 · 711 阅读 · 0 评论 -
Java对象的传递引用、浅拷贝、深拷贝的具体区别
Java中对象的传递引用、浅拷贝、深拷贝之间区别文章目录Java中对象的传递引用、浅拷贝、深拷贝之间区别What are they?具体案例演示对象的引用传递对象的浅拷贝对象的深拷贝(通过覆写clone()方法实现)总结What are they?传递引用: 即两个或多个对象名称指向同一段使用new关键字开辟的地址空间,它们都可以对此地址空间内的对象进行操作,即两个对象是相等的。如:Sheep sheep = new Sheep("tom",1,"white");Sheep sheep1 =原创 2020-07-20 15:40:38 · 495 阅读 · 0 评论 -
工厂设计(Factory)----设计模式
设计模式----工厂设计模式(Factory)文章目录设计模式----工厂设计模式(Factory)什么是工厂设计模式?实现功能详解具体代码实现汽车的接口和具体的汽车类汽车工厂汽车商店(测试类)运行结果总结什么是工厂设计模式?工厂设计模式是我们编程开发中最常用的一种设计模式,是属于创建型的设计模式。举个例子,假如现在我们要买一辆车,我们不必去管这辆轿车是怎么做出来的,以及这种轿车类型的具体实现,只需要通过我们的需求从一个轿车工厂中拿到该轿车即可。这就是工厂模式的具体作用。实现功能详解大家可以原创 2020-07-17 19:38:53 · 620 阅读 · 4 评论 -
披萨订购设计----简单工厂模式
披萨订购系统----简单工厂模式实现简单工厂模式的基本介绍:假如现在要设计一个披萨订购系统,要求具体的需求有:现在披萨的种类有很多,如GreekPizza、CheesePizza、Pepper等披萨类型,要求用户输入披萨名称,得到相应的披萨。每一个披萨都有具体的准备制作、进行烘烤、进行切割、进行打包等操作。完成披萨店的订购系统。根据设计模式的原则,我们可以设计出以下结构PizzaFactory 披萨的生产工厂,根据不同信息生产出不同的披萨。OrderPizza、PizzaSto原创 2020-07-16 16:06:25 · 1212 阅读 · 0 评论 -
单例模式----另外三种较优模式
较优秀的三种单例设计模式前面我们介绍过饿汉式两种设计模式、懒汉式三种设计模式,都各有利弊,单例设计模式还有较为优秀的DoubleCheck(双重检查)、静态内部类、枚举方式实现的设计模式。以下是它们的实现代码和分析文章目录较优秀的三种单例设计模式DoubleCheck(双重检查)静态内部类枚举方式DoubleCheck(双重检查)package com.design_patterns.singleton;/** * DoubleCheck双重检查实现单例模式 * 线程安全,效率高效,推荐原创 2020-07-14 20:15:50 · 168 阅读 · 0 评论 -
单例模式----懒汉设计(不推荐使用)
单例模式----懒汉式的三种实现方式实现单例模式共有8中方法,其中不推荐使用,或者设计不合理的单例模式有以下三种线程不安全式懒汉式package com.design_patterns.singleton;/** * 懒汉式(线程安全,但效率低下哦) */class Person04{ private static Person04 person = null; private Person04(){} //对构造方法进行私有化原创 2020-07-14 16:21:43 · 198 阅读 · 0 评论 -
单例模式----饿汉式设计
单例设计模式----饿汉式设计今天学习了第一个23种设计模式的第1种设计模式,即单例设计模式。那么什么是单例设计模式呢? 所谓单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式有以下八种方式:饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)双重检查静态内部类枚举今天暂只学习了两种饿汉式(静态常量) 和 饿汉式(静态代码块) 两种单原创 2020-07-13 19:15:43 · 159 阅读 · 0 评论 -
类的六种关系----UML类图
类之间的关系----UML类图在UML类图中,类与类之间存在6种关系分别为依赖、泛化(继承)、实现、关联、聚合与组合。文章目录类之间的关系----UML类图依赖(Dependency)泛化(也叫继承)(Generalization)实现(Implementation)关联(Association)聚合(Aggregation)组合(Composition)依赖(Dependency)只要在类中用到了对方,那么它们之间就存在依赖关系。以下五种情况均可以构成依赖关系:类中用到了对方。如果是类的原创 2020-07-13 15:20:55 · 1289 阅读 · 0 评论 -
迪米特原则
迪米特原则迪米特法则的核心是为了降低类之间的耦合,即一个类对自己所依赖的类知道的越少越好(也称最少知道原则),要求被依赖的类尽量对外只提供public方法供依赖类来使用即可,不泄露任何的被依赖类的信息,从而实现高内聚,低耦合的效果。迪米特法则的基本介绍:下面直接给出未实现迪米特法则的案例和实现迪米特法则的案例。未实现迪米特法则的案例package com.gaoliwei.demeter;import java.util.ArrayList;import java.util.List;原创 2020-07-11 17:55:32 · 290 阅读 · 0 评论 -
开闭原则
开闭原则开闭原则,即如一个软件实体类,模块和函数应该对扩展开发(对提供方),对修改关闭(对使用方),用抽象构建框架,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。下面直接给出未遵循开闭原则的实现代码和遵循开闭原则的实现代码。未遵循开闭原则的原则的代码package com.gaoliwei.ocp;public class Ocp { public static void main(String[] args) {原创 2020-07-11 15:38:49 · 183 阅读 · 0 评论 -
依赖倒转----设计模式七大原则
依赖倒转----设计模式七大原则今天又学习了依赖倒转原则,做下笔记,供自己复习和小伙伴们分享~文章目录依赖倒转----设计模式七大原则基本介绍原来含缺陷的程序代码(注释讲解)改进后的程序源码(注释讲解)基本介绍**依赖倒转原则(Dependence Inversion Principle)**是指:高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象依赖倒转(倒置)的中心思想是面向接口编程。依赖倒转原则是基于这样的设计理念;相对于细节的多变性,抽象的东西要原创 2020-07-10 18:48:02 · 164 阅读 · 0 评论 -
接口隔离原则----设计模式七大原则
接口隔离原则----设计模式七大原则今天又学习了设计模式的接口隔离原则,之前没怎么接触过,哈哈,只好照搬硬套来做个笔记。基本介绍:客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。我自己的简单理解就是,一个类(子类)通过接口去使用(依赖)另一个类(父类),此父类需要实现接口,但是父类为子类提供的服务方法又不需要实现接口的所有方法,以免造成浪费,此时就需要对接口进行拆分,使其满足接口隔离的原则,有点类似与代理设计模式,但是对接口进行拆分。直接给代码演示,感兴趣的小伙伴还可原创 2020-07-07 21:21:18 · 177 阅读 · 0 评论 -
单一职责原则----程序设计模式
单一职责原则----设计模式的七大原则今天刚开始学习设计模式的七大原则,哈哈,由于下一学期要开这门课,暑假没事做从b站开始自学,进入正题~单一职责原则,见名思义,即单一的职责,要求一个类或者一个方法实现的功能或完成的操作单一纯粹,要做什么就光做什么,不能有其它方面的操作,以造成程序代码的冗余和可读性差,遵守单一职责,可以设计出高内聚、低耦合的软件程序。下面我们从一段程序开始看起(原谅我值会照搬,,,嘿嘿嘿,以后我尽量都会以先写原则再通过案例进行应用说明)题目:设计一个交通工具类,可以模拟交通工具的运原创 2020-07-06 16:38:34 · 300 阅读 · 0 评论 -
设计模式七大设计原则
设计模式的七大设计原则刚刚自学了设计模式,其中老师讲到了设计模式原则。设计模式原则,其实就是程序员在编程时应带遵守的规则(为了保持软件的代码重用性、可读性、可扩展性、可靠性、高内聚,低耦合),也是各种设计模式的基础。设计模式常用的七大原则有:单一职责原则接口隔离原则依赖倒转(倒置)原则里氏替换原则开闭原则迪米特法则合成复用原则由于刚刚开始学习,只好先记下这些设计原则,等到学习之后,我会一个个将这些设计原则总结分享出来,供自己做笔记,和小伙伴们分享~...原创 2020-07-06 16:03:44 · 108 阅读 · 0 评论