设计模式
文章平均质量分 66
InterceptWall
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式 - 策略模式
一、基本介绍英文名:Strategy Pattern概念:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换模式类型:结构型设计原则:主要特点二、实现1、模式Context聚合StrategyConcreteStrategy实现StrategyⅠ、代码抽象的策略角色public interface Strategy { //策略模式的运算法则 void doSomething();}具体策略1public class ConcreteStra原创 2021-08-31 10:03:20 · 179 阅读 · 0 评论 -
设计模式 - 装饰器模式
一、基本介绍英文名:Decorator概念:动态的将新功能附加到对象上。模式类型:结构型设计原则:开闭原则(OCP)主要特点:在对象功能扩展方面,它比继承更有弹性二、实现需求: 下午茶:咖啡 + 调味剂,价格结算咖啡种类多,调味剂种类也多可单点咖啡,也可两者都点。且两者随意可组合(咖啡 + 多调味剂)1、一般实现方案一:该方案类会非常多,每增加一种咖啡或一种调味剂都需要创建很多类抽象咖啡类,所有咖啡类都实现该抽象类抽象调味剂,所有调味剂都实现该抽象类原创 2021-08-30 16:44:30 · 245 阅读 · 0 评论 -
设计模式 - 责任链模式
一、基本介绍概念:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止模式类型:结构型设计原则:开闭原则二、实现需求:父系社会,女人逛街在不同阶段需向不同的男人申请1、一般实现Ⅰ、代码// 女人接口public interface IWomen { // 获取个人情况 int getType(); // 获取需要请求的事情,逛街、约会? Strin原创 2021-08-30 14:46:45 · 171 阅读 · 0 评论 -
设计模式 - 命令模式
一、基本介绍英文名:Command概念:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能模式类型:结构型设计原则:主要特点:二、实现需求: 开发项目的需求变更需要修改需求文档、调整页面、更改代码等1、一般实现Ⅰ、代码public interface Group { //甲乙双方分开办公,如果你要和某个组讨论,你首先要找到这个组 void find(); //被要求增加功能原创 2021-08-19 09:00:34 · 174 阅读 · 0 评论 -
设计模式 - 中介者模式
一、基本介绍英文名:Mediator概念:用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互模式类型:结构型设计原则:主要特点:一个类只负责处理自己的活动(行为),与自己无关的活动就丢给中介者处理二、实现需求:模拟进销存三个模块的交互1、一般实现每个类都与其他两个类产生了关联关系Ⅰ、代码采购管理public class Purchase { //采购IBM电脑 public voi原创 2021-08-19 08:59:09 · 187 阅读 · 0 评论 -
设计模式 - 建造者模式
一、基本介绍建造者模式又叫生成器模式,是一种对象的构建模式。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象1、四个角色Product(产品):一个具体的产品对象Builder(抽象建造者):创建一个具体产品对象的各个部件指定的接口/抽象类ConcreteBuilder(具体建造者):实现抽象建造者接口/抽象类,构建和装配各个部件Director(指挥者):构建一个使用Builder接口的对象,它主要是用于创建一个复杂的对象。隔离了客户和对象的生原创 2021-08-16 17:59:58 · 183 阅读 · 0 评论 -
设计模式 - 模板方法模式
一、基本介绍英文名:Template Method Pattern概念:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤模式类型:结构型设计原则:开闭原则主要特点:可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度, 完成固定的逻辑二、实现[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5gc9UBOy-1629104130138)(C:\Users\wl\Deskto原创 2021-08-16 16:55:45 · 155 阅读 · 0 评论 -
设计模式 - 简单工厂模式
一、介绍简单工厂模式属于创建型模式,是工厂模式的一种,是工厂模式中最简单实用的模式定义了一个创建对象的类,由这个类来封装实例化对象的行为简单工厂也叫静态工厂模式,是工厂方法模式的简化二、实现1、简单工厂实现Ⅰ、代码// 抽象产品public abstract class Product { //产品类的公共方法 public void method1(){ //业务逻辑处理 } //抽象方法 public abstract void method2原创 2021-08-16 16:54:40 · 149 阅读 · 0 评论 -
设计模式 - 工厂方法模式
一、介绍定义一个用于创建对象的 接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类工厂方法模式属于创建型模式,是工厂模式的一种工厂方法模式是对简单工厂模式的抽象升级,将工厂这个概念抽象出来成为接口或抽象类,然后针对每种目标实现类创建一个工厂实现,一对一来实现,当新增了目标实现,只要同时新增一个工厂实现即可。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hmQxfBV5-1629103854992)(C:\Users\wl\Deskto原创 2021-08-16 16:51:17 · 164 阅读 · 0 评论 -
设计模式 - 桥接模式
一、基本介绍英文名:Bridge概念:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变模式类型:结构型设计模式设计原则:基于类的最小设计原则。通过使用封装、聚合及继承等行为让不同的类承担不同的职责。主要特点:将抽象与行为实现分离开,从而可以保持各部门的独立性以及应对功能的扩展二、实现需求: 设计手机品牌、样式的关系手机存在多种品牌,和多种样式#mermaid-svg-YP1KK6PGVpg3YTZS .label{font-family:'trebuc原创 2021-07-28 11:16:05 · 163 阅读 · 0 评论 -
设计模式 - 适配器模式
一、基本介绍适配器模式(Adapter pattern)将某个类的接口转换成客户端期望的另一个接口表示,主要目的时兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构性模式主要分类:类适配器模式:在Adapter中,继承被适配的类对象适配器模式:在Adapter中,持有被适配的对象接口适配器模式:在Adapter中,实现被适配的接口二、实现需求:手机充电需要将220V电压适配为输出5V的电压1、类适配器模式Ada原创 2021-07-27 13:52:31 · 171 阅读 · 0 评论 -
设计模式 - 七大原则
2、接口隔离客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应建立在最小的接口上案例Ⅰ违反接口隔离原则类A通过接口Inteface1依赖(使用)C类,但只用到1,2,3方法类B通过接口Inteface1依赖(使用)D类,但只用到1,4,5方法public class Segregation { public static void main(String[] args) { A a = new A(); a.depend1(new C())原创 2021-07-20 14:04:16 · 250 阅读 · 2 评论 -
代理模式
1 代理模式的产生额外功能1. 软件设计者的角度Service层不需要额外功能2. Service层的调用者则需要额外功能示例:1. 房东(软件设计者)出租房子,只想实现核心功能而不去实现额外功能 核心功能: 1.出租房屋 2.收钱 额外功能: 1.打广告 2.带客户看方2. 房客(软件调用者)则需要这些额外功能。此时房东和房客就会产生矛盾,应景而生中介(proxy)。房东不想实现的额外功能中介来实现2 设计模式2.1 概念通过代理类,为原始类(目标类)增原创 2021-01-21 23:14:19 · 282 阅读 · 3 评论 -
Aware接口实现策略模式
Aware接口实现策略模式实现方式:choose()方法获得的抽象类具体实现,根据不同实现的方法获取不同配置、属性或某一类东西// 注入@Autowiredprivate TypeChooser typeChooser;public void test() { // 获取不同的实现 TypeHandler typeHandler = typeChooser.choose("1"); // 获取实现类的属性 typeHandler.getFileName原创 2021-01-15 14:01:54 · 445 阅读 · 0 评论
分享