随笔分类 -  【H】设计模式

记录在设计模式所学知识,资料来源与黑马程序员
摘要:1 自定义Spring IOC总结 1.1 使用到的设计模式 工厂模式。这个使用工厂模式 + 配置文件的方式。 单例模式。Spring IOC管理的bean对象都是单例的,此处的单例不是通过构造器进行单例的控制的,而是spring框架对每一个bean只创建了一个对象。 模板方法模式。Abstract 阅读全文
posted @ 2023-04-05 20:19 |旧市拾荒| 阅读(32) 评论(0) 推荐(0) 编辑
摘要:3 定义解析器相关类 3.1 BeanDefinitionReader接口 BeanDefinitionReader是用来解析配置文件并在注册表中注册bean的信息。定义了两个规范: 获取注册表的功能,让外界可以通过该对象获取注册表对象。 加载配置文件,并注册bean数据。 /** * @versi 阅读全文
posted @ 2023-04-03 19:50 |旧市拾荒| 阅读(129) 评论(0) 推荐(0) 编辑
摘要:现要对下面的配置文件进行解析,并自定义Spring框架的IOC对涉及到的对象进行管理。 <?xml version="1.0" encoding="UTF-8"?> <beans> <bean id="userService" class="com.itheima.service.impl.User 阅读全文
posted @ 2023-03-30 20:51 |旧市拾荒| 阅读(56) 评论(0) 推荐(0) 编辑
摘要:1 BeanFactory解析 Spring中Bean的创建是典型的工厂模式,这一系列的Bean工厂,即IoC容器,为开发者管理对象之间的依赖关系提供了很多便利和基础服务,在Spring中有许多IoC容器的实现供用户选择,其相互关系如下图所示。 其中,BeanFactory作为最顶层的一个接口,定义 阅读全文
posted @ 2023-03-27 19:51 |旧市拾荒| 阅读(157) 评论(0) 推荐(1) 编辑
摘要:1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。 数据访问层。定义UserDao接口及其子实现类 public interface UserDao { public void add(); } ​ public 阅读全文
posted @ 2023-03-23 20:39 |旧市拾荒| 阅读(66) 评论(0) 推荐(0) 编辑
摘要:1 概述 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int add(int a,int b){ return a + b; } ​ //用于两个整数相加 public static int a 阅读全文
posted @ 2023-03-21 20:20 |旧市拾荒| 阅读(177) 评论(0) 推荐(1) 编辑
摘要:1 概述 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件都提供了撤销(Undo)操作,如 Word、记事本、Photoshop、IDEA等软件在编辑时按 Ctrl+Z 组合键时能撤销当前 阅读全文
posted @ 2023-03-20 21:44 |旧市拾荒| 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1 概述 定义: 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 2 结构 访问者模式包含以下主要角色: 抽象访问者(Visitor)角色:定义了对每一个元素(Element)访问的行为,它的参数就是可以访问的元素,它的方法个数理论上来讲 阅读全文
posted @ 2023-03-19 18:28 |旧市拾荒| 阅读(286) 评论(0) 推荐(0) 编辑
摘要:1 概述 定义: 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 2 结构 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。 具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一 阅读全文
posted @ 2023-03-17 20:06 |旧市拾荒| 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1 概述 一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。也就 阅读全文
posted @ 2023-03-16 21:21 |旧市拾荒| 阅读(59) 评论(0) 推荐(0) 编辑
摘要:1 概述 定义: 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。 2 结构 在观察者模式中有如下角色: Subject:抽象主题(抽象被观察 阅读全文
posted @ 2023-03-15 20:11 |旧市拾荒| 阅读(45) 评论(0) 推荐(0) 编辑
摘要:1 概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。 类图如下: 代码如下: public interfa 阅读全文
posted @ 2023-03-14 21:45 |旧市拾荒| 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1、概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息 阅读全文
posted @ 2023-03-12 15:51 |旧市拾荒| 阅读(27) 评论(0) 推荐(0) 编辑
摘要:1、概述 日常生活中,我们出去吃饭都会遇到下面的场景。 定义: 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。命令是相同的,而顾客服务员厨师这些对象是变化的。 2、结构 命令模式包含以下主要角色 阅读全文
posted @ 2023-03-11 20:08 |旧市拾荒| 阅读(89) 评论(0) 推荐(0) 编辑
摘要:1、概述 先看下面的图片,我们去旅游选择出行模式有很多种,可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进行开发,也可以使用eclipse进行开发,也可以使用其他的一些开发工具。 定义: 该模式定义了一 阅读全文
posted @ 2023-03-09 21:38 |旧市拾荒| 阅读(49) 评论(0) 推荐(0) 编辑
摘要:行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。 行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低 阅读全文
posted @ 2023-03-08 20:41 |旧市拾荒| 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 外部状态,指 阅读全文
posted @ 2023-03-06 22:39 |旧市拾荒| 阅读(202) 评论(0) 推荐(1) 编辑
摘要:1 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的 阅读全文
posted @ 2023-03-04 23:29 |旧市拾荒| 阅读(154) 评论(0) 推荐(1) 编辑
摘要:1 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以 阅读全文
posted @ 2023-03-02 20:08 |旧市拾荒| 阅读(200) 评论(0) 推荐(0) 编辑
摘要:1 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一 阅读全文
posted @ 2023-02-27 22:08 |旧市拾荒| 阅读(208) 评论(0) 推荐(2) 编辑