![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
李文璺
这个作者很懒,什么都没留下…
展开
-
两阶段终止模式
在线程T1中如何优雅的终止线程T2?这里优雅是指给T2一个处理后事的机会public class Test { public static void main(String[] args) throws InterruptedException { TwoPhaseTermination twoPhaseTermination = new TwoPhaseTermination(); twoPhaseTermination.start(); Thre原创 2021-08-15 13:08:08 · 135 阅读 · 0 评论 -
设计模式-单例模式
单例模式采取一定的方法保证整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。单例模式有八种方式1.饿汉式(静态常量)步骤如下: 1)构造器私有化(防止new) 2)类的内部创建对象 3)向外暴露一个静态的公共方法、 4)代码实现优缺点说明: 1)优点:这种方法比较简单,就是在类装载的时候就完成实例化。避免线程同步问题。 2)缺点:在类装载的时候就完成实例化,没有达到懒加载效果,如果开始至终都没有使用这个实例,则会造成内存的浪费。原创 2021-02-23 21:16:21 · 121 阅读 · 1 评论 -
设计模式-迪米特法则
迪米特法则介绍1)对象应对其他对象保持最少的了解2)类与类关系密切,耦合度越大3)迪米特法则又叫最少知道原则,一个类对自己依赖的类知道越少越好,对外提供public方法,不对外泄露任何信息4)只与直接的朋友通信5)直接的朋友 : 对象间有耦合关系,只要有耦合(A使用B,有依赖,关联,组合,聚合等)关系,我们称出现成员变量,方法参数,方法返回值中称直接朋友,而出现在局部变量则不是直接朋友,陌生的类最好不要以局部变量形式出现在类的内部。方案一public class Demeter1 {原创 2021-02-22 20:47:03 · 133 阅读 · 0 评论 -
设计模式-开闭原则介绍
开闭原则介绍1)开闭原则是变成最基础,最重要设计原则2)一个软件实体,如类模块和函数应该对扩展开放(对程序员方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节3)软件需要修改时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。4)编程中遵顼其他原则,以及使用设计模式的目的就是遵循开闭原则。方案一public class ocp1 { public static void main(String[] args) { GraphicEdi原创 2021-02-22 20:44:29 · 130 阅读 · 0 评论 -
设计模式-里氏替换原则
继承的思考和说明1)继承包含这样一个含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然他不强制要求所有子类遵循这些契约,但如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。2)继承给程序带来便利与带来了弊端。比如继承会给程序带来侵入性,程序可移植性降低,增加对象间的耦合度。如果这个类被其他类继承,当这个类修改时,必须考虑到所有子类,并且父类修改后,所有子类的功能都有可能发生故障。3)如何正确使用继承 => 里氏替换原则里氏替换原则1)使用继承时,遵循里氏替换原原创 2021-02-22 20:41:36 · 73 阅读 · 0 评论 -
设计模式-依赖倒转原则
依赖倒转原则1)高层模块不应该依赖低层模块,而这应该依赖其抽象(接口,抽象类)2)抽象不应该依赖细节,细节应该依赖抽象3)依赖倒转(倒置)的中心思想面向接口编程4)设计理念:相对于细节的多变性,抽象的东西要稳定得多,以抽象为基础搭建的架构比以细节搭建的架构要稳定的多.在Java中,抽象指的是接口或抽象类,细节就是具体的实现类.5)使用接口和抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务教给他们的实现类去完成依赖关系传递的三种方式接口传递 public class Dep原创 2021-02-21 20:31:24 · 50 阅读 · 0 评论 -
设计模式-接口隔离原则
接口隔离原则客户端不应该依赖它不需要的接口,即一个类对应一个类的依赖应该建立在最小的接口上方案一接口/** * 接口Interface1 */interface Interface1 { void operation1(); void operation2(); void operation3(); void operation4(); void operation5();}实现类/** * 类B实现Interface1原创 2021-02-20 12:23:38 · 78 阅读 · 0 评论 -
设计模式-单一职责原则
单一职责原则对于类来说,一个类应该只负责一项职责。如果A负责两个不同的职责,职责1,职责2,当职责1需求更改而更改A时,可能造成职责2执行错误,所以要将A的粒度分解为A1,A2 1.降低类的复杂度,一个类只负责一项事情 2.提高可读性,可维护性 3.降低变更带来的风险 4.通常情况下,我们应当遵守单一原则,只有逻辑足够简单,才可以在代码级违反单一原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则(方案三)方案一public class SingleResonsibility1 {原创 2021-02-19 21:34:37 · 95 阅读 · 0 评论 -
设计模式
设计模式是为了让软件具有更好的1)代码重用性(相同功能,不用多次编写)2)可读性(编程规范性,便于程序员的阅读和理解)3)可扩展性(新增功能,非常方便)4)可靠性(新增功能后,对原有功能没有影响)5)是程序呈现高内聚,低耦合的特性设计模式常用的七大原则1)单一职责原则2)接口隔离原则3)依赖倒转(倒置)原则4)里氏替换原则5)开闭原则ocp6)迪米特原则7)合成复用原则...原创 2021-02-19 21:25:41 · 49 阅读 · 0 评论 -
设计模式-模板设计模式
模板设计模式1)抽象类 AbstractClass类中实现了模板方法(template ),定义了算法的骨架,具体子类需要去实现,抽象方法operationr2,3,4 template() { operationr2(); operationr3(); operationr4(); } operationr2,3,4可以是抽象方法,也可以是实现方法;如果是抽象方法,需要到子类实现即可2)实现类 ConcreteClass实现operationr2,3,4,完成算法中的特点子类的原创 2021-02-18 21:22:37 · 104 阅读 · 0 评论