![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
忘尘人
这个作者很懒,什么都没留下…
展开
-
设计模式-桥接模式
介绍 将抽象部分与它的实现部分分离,使它们都可以独立地变化。 UML图 Client:桥接模式的调用者 Abstraction抽象类(充当桥接的角色)Abstraction与Implementor是聚合关系。 Abstraction package Bridge; import interfaceAdapter.AbsAdpter; public class Abstraction { //聚合实现类 private Implementor implementor;原创 2021-06-04 16:46:57 · 48 阅读 · 0 评论 -
结构模式-适配器模式
介绍 将一个类的接口转换为另一个接口表示,让原本不匹配的两个类,可以协同工作。 目的是为了兼容性 三种方式:类适配器模式,对象适配器模式,接口适配器模式。 从用户角度来看,看不到适配者,是解耦的。 用户调用适配器转换出来的目标接口方法,适配器在调用适配这的相关方法,用户收到反馈结果感觉和目标接口交互。 类适配器模式 ...原创 2021-06-04 13:42:04 · 41 阅读 · 0 评论 -
设计模式-建造者
建造者模式 介绍 我们可以把建造者模式看成新建一栋房屋。房屋有打地基,建墙,装电线,盖屋顶等过程。但是如果建房是一个类,我们把建房和建房的过程放在一起就会产生耦合。 建造者模式就是减低产品和制造产品过程之间的耦合。 建造者模式的四个角色。 Product(产品角色):一个具体产品对象。 Builder(抽象建造者):创建一个Product对象的各个部件指定接口/抽象类,主要作用是指定建造的流程。 ConcreBuilder (具体建造者):实现接口,构建和装配各个部件。实现产品的细节 Director(指原创 2021-06-03 14:29:35 · 51 阅读 · 0 评论 -
设计模式-原型模式
原型模式(prototype) 介绍 java的Object类中含有一个函数clone(),但是实现克隆的方法需要实现Java的CloneAble类 改接口表示该类能够复制且有复制能力。 用原型1 的实例来保证创建对象的种类,并通过拷贝这些原型创建新的对象 原型模式是一种创建型设计模式,它能够在不知道对方创建细节的情况下创建另一个设计模式 通过将原型对象传递给要法动创建的队象,这个发动创建对象通过请求原型对象拷贝他们自己来实施创建。对象.clone(); UML 案例 public class Cli原创 2021-05-27 16:02:07 · 37 阅读 · 0 评论 -
设计模式-工厂模式
简单工厂模式 简单工厂方法模式就是由一个工厂对象决定创建出哪一种产品的实例。 定义一个创建对象的类,由这个类来封装实例化对象的行为。 在软件开发中,我们大量用到某种,某类,某对象时会用到工厂方法模式。 类图 案例 ...原创 2021-05-27 13:33:23 · 53 阅读 · 0 评论 -
单例模式
介绍 单例模式:采用特定的方法导致某个类,只有一个对象实例,并且该类只提供一个取得其对象实例的方法。 创建单例模式:总共有八种创建单例模式的方法。 饿汉式(静态常量) 构造器私有化 类的内部创建对象 向外暴露一个静态公共方法 public class Main { public static void main(String[] args) { Single s = Single.getSingle(); Single s1 = Single.getSingle();原创 2021-05-19 17:02:59 · 56 阅读 · 0 评论 -
java关系
耦合由弱到强分别是:依赖、关联、聚合、组合、继承。 1依赖关系 若类A是类B的局部变量,或其中某个方法的参数或返回值,则A与B就是依赖关系。 2关联 若A是B的成员变量一般来说就是关联关系。(如人和自行车) 2.1 聚合 简单来说,就是has-a,但是关联不同,关联就是人和苹果的关系。而聚合就是电脑和显示屏的关系,显示屏是电脑的一部分有主从关系,但是关联是平行关系。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210518173321544.jpg#pic_cent原创 2021-05-18 17:39:22 · 95 阅读 · 0 评论 -
迪米特法则
介绍 一个类需要尽量少的对另一个类保持最少了解。(尽量少的调用另一个对象的方法)目的,减少程序之间的耦合度。 简单来说就是:只与 直接朋友 通信 案例 public class Employee { private String id; public void setId(String id){ this.id = id; } public String getId(){ return id; } //分公司员工 p原创 2021-05-18 14:08:08 · 76 阅读 · 0 评论 -
开闭原则
介绍 对扩展是开放的,对修改是关闭的(用抽象去构建框架,用实现扩展细节)。 当软件发生变化是,尽量扩展实体行为来发生变化,而不是通过修改已有代码来产生变化 案例 class GraphicEditor { public void drawShape(Shape s) { if (s.m_type==1) drawRectangle(s); else if (s.m_type==2) drawCi原创 2021-05-17 17:24:04 · 53 阅读 · 0 评论 -
依赖倒置原则
介绍 高层模块不应该依赖底层模块,二者都应该依赖其抽象(抽象类,接口)。 抽象不应该依赖细节(具体实现类),细节应该依赖抽象 核心思想:面向接口编程 相对于细节的多变性,抽象的稳定性,以抽象为基础的构架,比以接口为基础的构架要稳定的多。 是用抽象是为具体的规范,而不涉及任何具体操作,把展示细节的任务交给实现类。 ...原创 2021-05-17 09:58:24 · 44 阅读 · 0 评论 -
接口隔离原则(interface segeration principle)
介绍 客户端不应该依赖他不需要的接口,即一个类对另一个类的依赖应建立在最小接口上。 案例 public class segeration { public static void main(String[] args) { A a = new A(); a.depend1(new B()); a.depend2(new B()); a.depend3(new B()); C c = new C(); c.原创 2021-05-14 17:37:36 · 107 阅读 · 0 评论