随笔分类 - Java设计模式
尚硅谷教程文字笔记。
摘要:基本概念 命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。 在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求,同时命令模式也支持可撤销的操作。 通俗易懂的理解:将军发布命令,士兵去执行。其中有几个角色:将军(命令发布者)、士兵(
阅读全文
摘要:基本概念 模板方法模式,又叫模板模式。在一个抽象类中公开定义了执行它的方法的模板,它的子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。 简单说,模板模式定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤。 这种类型的
阅读全文
摘要:基本概念 代理模式是指为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是,可以在目标对象实现在基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。 代理模式有不同的形式,主要有两种:动态代理和静
阅读全文
摘要:基本概念 享元模式,也叫蝇量模式,运用共享技术有效地支持大量细粒度的对象。 常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个。 享元模式能够解决重复对象的内存浪费的问题,当系统中有
阅读全文
摘要:基本概念 外观模式(Facade),也叫“过程模式”。外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用, 而无需关心这个子系统的内部细节。 外观模
阅读全文
摘要:基本介绍 组合模式,又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。 组合模式依据树形结构来组合对象,用来表示部分以及整体层次。 这种类型的设计模式属于结构性模式。 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理
阅读全文
摘要:基本介绍 装饰者模式就是动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则。装饰者模式就像打包一个快递 被装饰者(Component):比如陶瓷、衣服; 装饰者(Decorator):比如报纸填充、塑料泡沫、纸板。 传统方式 案例 星巴克咖啡订单项目: 咖啡
阅读全文
摘要:基本认识 将抽象和实现解耦,使得两者可以独立地变化。 是一种结构型设计模式。 桥接模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责,它的主要特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 桥接模式虽然是一个使用频率不高的模式,但是熟
阅读全文
摘要:基本介绍 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。 适配器模式属于结构性模式,主要分为三类:类适配器模式、对象适配器模式、接口适配器模式。 类适配器模式 什么是类适配器模式 类适配器模式介绍:Adapter类,通
阅读全文
摘要:盖房项目需求 需求描述: 需要建造房子:这一过程为:打桩、砌墙、封顶。 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的。 请编写程序,完成需求。 传统方式解决盖房需求 public abstract class AbstractHouse { public ab
阅读全文
摘要:克隆羊问题 现在有一只羊,姓名为:tom,年龄为:1,颜色为:白色,请编写程序创建和tom羊属性完全相同的10只羊。 传统方式解决克隆羊问题 public class Sheep { private String name; private int age; private String color
阅读全文
摘要:简单工厂模式 看一个具体的需求 看一个披萨的项目:要便于披萨种类的扩展,要便于维护。 披萨的种类很多(比如GreekPizza、CheesePizza等); 披萨的制作有prepare,bake,cut,box; 完成披萨店订购功能。 使用传统的方式完成 //把Pizza类做成抽象类 public
阅读全文
摘要:单例模式 认识单例模式 什么是单例模式 单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session对象。Sessio
阅读全文
摘要:类之间的关系有:依赖、泛化、实现、关联、聚合、组合。 类图的六大关系 依赖 依赖关系是指类中用到了对方。可以是“类的成员属性”、“方法的返回类型”、“方法接收的参数类型”和“方法中使用到的类”。 对应的类图: public class PersonServiceBean { private Pers
阅读全文
摘要:1 认识设计模式 1.1 什么是设计模式 所谓设计模式,就是对经常出现的软件设计问题的成熟解决方案。 很多人把设计模式想象成非常高深的概念,实际上设计模式仅仅是对特定问题的一种惯性思维。笔者见过一些学员喜欢抱着一本设计模式的书研究,以期成为一个“高手”,实际上设计模式的理解必须以足够的代码积累量作为
阅读全文