![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
鼾声鼾语
汽车行业研发,人工智能领域及汽车电气自动化工程师
展开
-
用图说明UML类图关系
UML类图首先,Eclipse中可以画类图,安装请看这里;也可以在Idea中安装PlantUML,但是需要学习一点语法;也可以使用PowerDesign。UML类图:用于描述系统中的类(对象)本身的组合和类(对象)之间的各种静态关系,这些关系有:泛化、实现、依赖、关联、组合、聚合。2.1 泛化(Generalization)指的是一个类继承另一个类,并且可以在子类添加它自己的新功能,是依赖关系的特例。代码体现形式:继承。箭头指向:实线,指向父类/基类2.2 实现(Realization).原创 2022-05-09 09:36:05 · 540 阅读 · 0 评论 -
在建模设计的时候,设计模式的几种用法如何发挥作用的?(完整版)
java的设计模式大体上分为三大类:创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设计模式遵循的原则6个:1、开闭原则(Open Close Principle)对扩展开放,对修改关闭。2、里氏代换原则(Liskov Su原创 2021-03-25 15:51:17 · 117 阅读 · 0 评论 -
liepal不能使用文件夹原有的数据库
原创 2021-03-01 17:24:08 · 92 阅读 · 0 评论 -
synchronized锁定的到底是什么?wait到底是什么?notify到底是什么?多线程处理的三元素。
synchronized介绍:synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的原创 2021-02-22 17:00:25 · 170 阅读 · 0 评论 -
UDS中非常好用的超时的一个类future,暂时发现的,UDS超时如何处理的方法
目前为止暂时发现的一个future类,可以做任务超时,以下是一个案例:任务超时处理是比较常见的需求,比如在进行一些比较耗时的操作(如网络请求)或者在占用一些比较宝贵的资源(如数据库连接)时,我们通常需要给这些操作设置一个超时时间,当执行时长超过设置的阈值的时候,就终止操作并回收资源。Java中对超时任务的处理有两种方式:一种是基于异步任务结果的超时获取,一种则是使用延时任务来终止超时操作。下文将详细说明。一、基于异步任务结果的超时获取基于异步任务结果的获取通常是跟线程池一起使用的,我们向线程池提交任务原创 2021-02-17 15:15:06 · 1303 阅读 · 1 评论 -
MVP 设计模式中, Service 属于什么层
1,一般思路是:a.通过绑定,将View示例传递给present,通过接口实例化进行进行presenter回调view形式的交互。b.让presenter运行在service中。参考代码:https://blog.csdn.net/martinsz/article/details/110419284原创 2021-02-15 16:55:31 · 480 阅读 · 0 评论 -
从匿名内部类到接口回调
1,匿名内部类实现了一个回调接口,在实际开发过过程中,我们常常会遇到这样的情况,一个接口/类的方法的某个实现方式或者说对象,只在程序中执行一次,但为了使用它,我们需要创建它的实现类/子类去实现/重写,此时可以使用匿名内部类的方式,可以无需创建新的类,减少代码冗余。...原创 2021-02-10 10:08:57 · 276 阅读 · 0 评论 -
线程锁synchronized,同步notify,实现多线程并发的案例代码
public class Test { private Integer result=0; private int numVlaue=9; private Integer num = 0; public static void main(String[] args) { // TODO Auto-generated method stub Test tt=new Test(); tt.A(); tt.B(); } public void B() { new Threa原创 2020-11-26 14:01:49 · 154 阅读 · 0 评论 -
activity绑定Service,activity调用Service中的方法,Service实现接口回调
开启服务的时候,如果我们是通过bindService来绑定服务并且要向服务传递数据,可以直接在Intent中设置bundle来达到效果,但是如果是我们需要从服务中返回一些数据到Activity中的时候,实现起来就有各种各样的方法,比如说使用回调,使用广播等等,今天说的是使用回调的方法。新建一个工程,并编写一个服务:public class MyService extends Service { private boolean connecting = false; private Cal原创 2020-11-10 10:56:22 · 386 阅读 · 0 评论 -
这个统一的方法,小红做成了一个接口,提供给大家,这个因为统一,就需要进行接口化
小红希望以后继续向班里的小朋友们提供计算服务,同时还能向老婆婆提供算账服务,甚至以后能够拓展其他人的业务,于是她向所有的顾客约定了一个办法,用于统一的处理,也就是自己需要的操作数和做完计算之后应该怎么做。这个统一的方法,小红做成了一个接口,提供给了大家,代码如下:public interface doJob { public void fillBlank(int a, int b, int result); }因为灵感来自帮小明填空,因此小红保留了初心,把所有业务都当做填空(fill原创 2020-11-02 14:16:18 · 777 阅读 · 0 评论 -
This关键字解释,来源java编程思想
1,将执行的方法由于某种原因必须放到外部操作(也许是因为该外部方法要应用于许多不同的类,而不想重复这些代码)。为了将自身传递给外部方法,必须使用this关键字。2,this关键字智能在方法内部使用,表示对“调用方法的那个对象”,的引用,this的用法和其他对象引用并不不同,3,通常写this的时候,都是指的“这个对象”或者“当前对象”,而且它本身表示当前对象的引用,自己的理解:外部对象的方法调用当前对象的方法的时候,需要传入this当前对象的引用,而不是新生成一个对象。...原创 2020-09-16 10:21:52 · 113 阅读 · 0 评论 -
java中this关键字的理解_当前对象的别名
课本上说this是指的当前对象那么this什么时候被实例化呢,其实this是对象被创建的时候就指向该对象了可以将this理解为:this就是一个对象的引用或者理解为别名。比如你new一个对象,以下面的代码为例,Leaf leaf=new Leaf();this.i==>leaf.i;也就是说leaf(对象的引用)指向的对象等于this(对象的引用)指向的对象。再说下this.i的这个i,指的是leaf对象里边的i,再通俗一点指的是 int i=0—的这个i。举个例子加深下理解,比如在医院刚刚原创 2020-09-03 09:47:51 · 277 阅读 · 0 评论 -
两种常用的代理模式的用法,优化访问和权限管理
两种常见的代理模式有两种:1,虚代理:可以根据需要来创建“大”对象,只有到必须创建对象的时候,虚代理才会创建对象,从而大大加快程序运行速度,并节省资源,通过虚代理可以对系统进行优化。2,保护代理:可以在访问一个对象的前后,执行很对附加的操作,除了进行权限控制之外,还可以进行很多跟业务相关的处理,而不需要修改被代理对象。也就是说,可以通过代理来给目标对象增加功能。...原创 2020-09-01 10:03:18 · 386 阅读 · 0 评论 -
RxJava最重要的概念是什么?
RxJava最重要的概念是什么?几个操作符方便你把数据变来变去,方便你做线程调度,让你不用去看callback hell?确实很方便,但如果只看到这一层,未免过于肤浅。以我用RxJava这几年肤浅的体验来看,RxJava最大的作用是提供一个优秀的,现成的响应式/流式调用封装,而你只需付出些许学习成本就可以少做很多工作。一个RxJava的调用链从create开始到subscribe结束,可以大概把整个调用链分为上游、中游、下游,上游数据源,中游数据变换,下游数据接收&展示。除非你变更整条调用链的数据结原创 2020-08-11 17:04:58 · 147 阅读 · 0 评论 -
接口和抽象类的选择
既然接口是一种特殊的抽象类,那么在开发,何时选用接口?何时选用抽象类?对于它们的选择,在开发中是一个很重要的问题,总结两句话:1,优先选择接口。2,在既要定义子类的行为,又要为子类提供公共的功能时,应该选择抽象类。...原创 2020-08-10 09:53:23 · 159 阅读 · 0 评论 -
软件设计过程种开闭原则的使用
任何软件都需要面临一个很重要的问题,即它们的需求会随时间的推移而发生变化。当软件系统需要面对新的需求时,我们应该尽量保证系统的设计框架是稳定的。如果一个软件设计符合开闭原则,那么可以非常方便地对系统进行扩展,而且在扩展时无须修改现有代码,使得软件系统在拥有适应性和灵活性的同时具备较好的稳定性和延续性。随着软件规模越来越大,软件寿命越来越长,软件维护成本越来越高,设计满足开闭原则的软件系统也变得越来越重要。为了满足开闭原则,为系统定义一个相对稳定的抽象层,而将不同的实现行为移至具体的实现层中完成。如果需..原创 2020-08-09 15:27:07 · 105 阅读 · 0 评论 -
几种常见设计模式讲解
java的设计模式大体上分为三大类:创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设计模式遵循的原则有6个:1、开闭原则(Open Close Principle)对扩展开放,对修改关闭。2、里氏代换原则(Liskov原创 2020-08-08 15:23:47 · 200 阅读 · 0 评论