GoF23
二十三种设计模式
Ther233
这个作者很懒,什么都没留下…
展开
-
GoF23-题目整理
GoF23-题目整理(后续会持续更新)一、原型设计模式问题:1)请使用UML类图画出原型模式核心角色2)原型设计模式的深拷贝和浅拷贝是什么,并写出深拷贝的两种方式的源码(重写clone方法实现深拷贝、使用序列化来实现深拷贝) 3)在Spring框架中哪里使用到原型模式,并对源码进行分析beans.xml<bean id="ido1" class="com.tan.spring.bean.Monster" scope="prototype"/>4)Spring中原型be原创 2022-04-27 22:21:14 · 330 阅读 · 0 评论 -
GoF23-单例模式
单例设计模式概述 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法) 例如:Hibernate中的SessionFactory,它作为数据存储源的代理,并且负责创建Session对象,SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个SessionFactory就足够了,因此SessionFactory可以使用单例模式八种单例设计模式单例模式有八种方式:1.饿汉式:静态常量原创 2022-04-26 14:03:57 · 548 阅读 · 0 评论 -
GoF23-合成复用原则
合成复用原则(Composite Reuse Principle)合成复用原则(Composite Reuse Principle) 原则是尽量使用合成/聚合的方式,而不是使用继承场景描述 假设现在有A类,A类中有method1()、method2(),B类想要去使用A类中的method1(),按照我们平时的想法就是让B类去继承A类,进而去调用A类中的method1() 但是使用继承的方式会让A类和B类具有较高的耦合性改进方案方案一: B类去依赖A类。B类中编写原创 2022-04-11 17:48:09 · 391 阅读 · 0 评论 -
GoF23-迪米特法则
迪米特法则基本介绍1)一个对象应该对其他对象保持最少的了解2)类与类关系越密切,耦合度越大3)迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的Public方法,不对外泄露任何信息4)迪米特法则还有个更简单的定义:只与直接的朋友通信5)直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多原创 2022-04-09 08:15:28 · 191 阅读 · 0 评论 -
GoF23-开闭原则
开闭原则基本介绍1.开闭原则 Open Closed Principle是编程中最基础、最重要的设计原则2.一个软件实体如类、模块、函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节3.当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化4.编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则实际场景(传统方式)实现画图形的功能传统方式去实现:分析:1.优点:比较好理解,容易想到该实现方法2.缺原创 2022-04-08 19:13:37 · 106 阅读 · 0 评论 -
GoF23-里氏替换原则
里氏替换原则存在问题面向对象思想中的继承性的一些思考:1) 继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。2) 继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障原创 2022-04-07 07:13:03 · 148 阅读 · 0 评论 -
GoF23-依赖倒置原则
依赖倒置原则依赖倒置原则概念依赖倒置原则(Dependence Inversion Principle)是指: 1.高层模块不应该依赖低层模块,二者都应该依赖其抽象 2.抽象不应该依赖细节,细节应该依赖抽象 3.依赖倒置的中心思想是面向接口编程 4.依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定得多。以抽象为基础搭建的架构比以细节为基础的架构要稳定得多。在Java中,抽象指的是接口或抽象类,细节就是具体的实现类 5.使用接口或抽象类的目的是原创 2022-04-01 23:57:43 · 167 阅读 · 0 评论 -
GoF23-接口隔离原则
接口隔离原则 Interface Segregation Principle接口隔离原则概述客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上先看一张图:类A通过接口Interface1依赖类B,类c通过接口Interface1依赖类D,如果接口Interface1对于类A和类c来说不是最小接口,那么类B和类D必须去实现他们不需要的方法按隔离原则.应当这样处理:将接口Interface1拆分为独立的几个接口,类A和类C分别它们需要的接口建立依赖关系,也就是采用接口隔离原原创 2022-03-31 23:55:51 · 155 阅读 · 0 评论 -
GoF23-建造者模式
建造者模式建造者模式概述建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节建造者模式原理建造者模式的四个角色: 1)Product(产品角色):一个具体的产品对象 2)Builder(抽象建造者):创建一个原创 2022-03-30 23:13:32 · 107 阅读 · 0 评论 -
GoF23-单一职责原则
单一职责原则单一职责原则概述对类来说的,即一个类应该只负责一项职责。如类Cola负责两个不同职责:职责1:生产可乐,职责2:销售可乐当职责1:生产可乐需求变更而改变类Cola时,可能造成职责2:销售可乐执行错误,所以需要将类Cola的粒度分解为:类ProductionCola,类SaleCola单一职责原则:各司其职单一职责原则实际应用应用背景描绘出一些人正在使用的交通工具的情况解决方法一package com.tan.principle.singleresponsibility;原创 2022-03-29 23:43:46 · 502 阅读 · 0 评论