![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式和设计原则
文章平均质量分 57
设计模式笔记
子夜听雨
聆听 灭绝的 死寂吧!
展开
-
Java装饰者模式
1.咖啡种类:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)装饰者模式:动态的将新功能附加到对象上,在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则。问题:这样设计,会有很多类,当我们增加一个单品咖啡,或者一个新的调料,类的数量就会倍增,就会出现类爆炸。4.使用OO的来计算不同种类咖啡的费用:客户可以点单品咖啡、也可以单品咖啡+调料组合。3.要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便。...原创 2022-08-04 20:30:46 · 715 阅读 · 0 评论 -
Java桥接模式
基本介绍:1.桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。2.是一种结构型设计模式3.Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及他们的功能扩展原理类图:Client类:桥接模式调用者抽象类(Abstraction):维护了 implementor/即它的实现类Concr原创 2022-08-02 19:13:58 · 2177 阅读 · 0 评论 -
适配器模式
适配器模式工作原理适配器模式将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容从用户的角度看不到被适配者,是解耦的用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法用户收到反馈结果,感觉只是和目标接口交互。...原创 2022-08-02 11:08:28 · 115 阅读 · 0 评论 -
Java建造者模式(生成器模式)
建造者模式又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象建造者模式是一步一步建造一个复杂对象,它允许用户只通过指定复杂对象的类型和内容就可以建造他们,用户不需要指定内部的具体构建细节。...原创 2022-08-01 15:47:46 · 5455 阅读 · 1 评论 -
Java工厂模式
创建一个制作Pizza的例子。原创 2022-07-30 15:39:55 · 313 阅读 · 0 评论 -
Java单例模式
优点写法简单,在类加载时就完成实例化,避免线程同步问题缺点在类加载时完成实例化,没有达到lazyloading的效果,如果从始至终没使用这个实例,会造成内存的浪费这种方式基于classloader机制避免了线程同步问题,但是instance在类装载时就实例化。在单例模式种大多数都是调用getInstance方法,但是导致类加载的原因有很多,因此不能确定有其他的方式(或者其他的静态方法)导致类装在,这是初始化instance就没有达到lazyloading的效果结论。...原创 2022-07-30 09:42:57 · 131 阅读 · 0 评论 -
开闭原则、迪米特法则、合成复用原则
1,一个软件实体如类,模块和函数应该对外扩展开放,对修改关闭,用抽象构建框架,用实现扩展细节2.当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化3.编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则其实就是多用接口。...原创 2022-07-29 16:49:55 · 172 阅读 · 0 评论 -
里氏替换原则(Liskov Substitution Principle)
1.如果对每个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有对象o1都替换为o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类的对象。3.里氏替换告诉我们,继承实际上让两个类耦合性增强了,在适当的情况下可以通过聚合,组合,依赖来解决问题。应该让原来的父类和子类都继承一个更通俗的基类,原有的继承关系去掉,采用依赖、聚合、组合等关系代替。2.在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类方法。...原创 2022-07-28 19:52:41 · 201 阅读 · 0 评论 -
依赖倒置原则(Dependence Inversion Principle)
1.高层模块不应该依赖底层模块二者都应该依赖其抽象2.抽象不应该依赖细节,细节应该依赖抽象3.依赖倒置的中心思想是面向接口编程依赖倒置是基于这样的设计理念相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多,在java中抽象是指接口细节是具体的实现类使用接口或抽象类的目的是制定号规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。...原创 2022-07-27 20:57:53 · 189 阅读 · 0 评论 -
接口隔离原则(Interface Segregation Principle)
上图类A通过接口Interface1依赖类B类C通过Interface1依赖类D,如果Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。将接口Interface1拆分成独立的几个接口,类A和类C分别与他们所需要的接口建立依赖关系,也就是采用接口隔离原则。1.客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。应该将Interface1分离为几个独立接口。A和C类分别与他们需要的接口建立依赖。...原创 2022-07-27 20:06:11 · 146 阅读 · 0 评论 -
Java设计模式--单一职责原则
对类来说,一个类应该只负责一项职责,如果类A负责两个不同职责职责1、职责2.当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的颗粒度分解为A1,A2。4.通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则只有类中的方法数量足够少,可以在方法级别保持单一职责原则。1.降低类的复杂度,一个类只负责一项职责。2,提高类的可读性可维护性。3.降低变更带来的风险。...原创 2022-07-27 19:29:01 · 213 阅读 · 0 评论