java23种设计模式自理解

设计模式demo:
普通工厂模式:new一个接口对象有不同实现类,定义一个接口放一个方法,多个类实现接口和方法,用的时候new接口总对象,实际是实现类的对象,说白了就是多态
抽象工厂模式:在普通工厂模式基础之上做,两个接口,一个是普通工厂的接口一样,另一个接口名随意,里面有一个方法返回值是第一个接口的接口名,多个类也是实现接口一,关键在于另外再创建一份多个类去实现接口二返回各自对象,说白就是讲以前的创建不同接口实例类对象分开到多个类
单例模式:一个类只能创一个对象,把构造方法私有化只能自己类new,提供一个静态的最终的私有属性,属性类型就是本类(注意线程安全问题)
建造者模式(Builder):说白了就是普通工厂模式前提下,额外创建一个普通类,定义一个属性的类型是工厂对象类型,关键是一个list,该属性可以放多个对象,多个方法对应返回对应的实现类,需要对象个数是方法参数
原型模式:创建一个类继承克隆接口,该类一个克隆方法,所有克隆强转为本类对象返回(注意是浅复制
适配器模式:聪明,一个类有一个方法和一个接口里面的方法一模一样,再用的类中,同时实现接口和那个类,用的这个类就不用实现接口里面的方法,被父亲类覆盖了、。还可以做法是只实现接口,把类作为一个属性。另外一种就是一个借口很多方法,用一个抽象类来实现接口,自己要用的类就和抽象类打交道,这样就不用把接口所有的方法实现
装饰模式:一个接口两个实现类,其中一个实现类定义一个属性,属性类型是接口类型,通过这个属性去点就可以用另一个实现类的方法
代理模式:和装饰模式区别是属性类型变成另一个实现类的类型,这样本类(代理类)就可以直接用另一个实现类方法
外观模式:没什么用,就是抽象一些,多个类拥有相同名字的方法,方法执行不同,另一个用的类分别属性里面放多个类,可以对多个类的关联随意调控
桥接模式:也没啥,一个抽象类实现一个接口并定义一个属性是接口类型并提供属性get方法返回接口对象,另外多个类又实现接口,用的类继承抽象类用get属性方法弄出来对象去点多个类实现方法
组合模式:一个类有属性类型是自身,并且有一个属性是集合泛型是自身,并提供添加和删除到该集合的方法,另外一个类有一个属性类型是第一个类的类型,关键在于本类的有参构造方法传入的参数,new的是第一个类的对象然后赋值给本类属性。
享元模式:没啥常用于jdbc六大步之后然后把连接加入连接池达到共享,这个连接池常常是该类的属性,类型是一个集合
策略模式:没啥,一个接口有一个方法需要参数,一个抽象类有一个方法,多个实现类同时继承和实现,实现方法时的参数又用到抽象类的方法参数里面,例如一个参数实现加减乘除的封装
模板方法模式:感觉没啥用,一个抽象类,至少定义三个方法,一个是主方法,用于调用抽象类里面的方法进行业务逻辑计算,调用第二个方法和带的参数实现返回,二个方法是抽象方法有参数,用于用的时候继承这个抽象类实现这个方法传不同参数,另外一个方法是计算逻辑
观察者模式:绕来绕去一层调一层感觉没啥用,用于订阅,多个类实现接口a,后面调用接口的方法会输出每个实现类的结果,这个接口和多个实现类就这点用,然后是另一条线,有一个接口b,有一些方法需要接口a的类型作为参数,其中有两个业务方法,一个是在实现他的抽象类中实现,一个实现实现抽象类的类中实现并回调第一个业务方法
迭代子模式:两个接口ab,a接口里面有个方法返回值是b接口类型,在实现a接口时必须实现该方法,返回值是b接口类型只有new他的实现类,关键点在于b的实现类有一个属性,类型是a接口类型,而且只有一个有参构造方法,所以new这个对象必须传a的实现类,不知道有什么好处
责任链模式:感觉跟之前重复了,一个抽象类实现接口并把接口类型作为属性,另外一个类实现并继承,用抽象类的属性调接口方法
命令模式:也是重复的,一个类实现接口,并有一个属性类型是另一个普通类,并在实现方法里调另一个普通类的方法
备忘录模式:没啥用,两个类,各自本类都有一个方法把自己本类的属性放到new的另一个类中,形成交叉
状态模式:更没啥,一个类有个属性类型是另一个类,利用属性去调另一个类的方法
访问者模式:有点秀,一个类中有两个静态代码块ab,a带参数c类型,有个接口c,接口方法还带参数a类型,当执行静态代码块a时,方法参数需要接口类型只有找实现类,实现类又在b静态类里面,实现类方法要参数又是a,用的话newa的对象
中介者模式:不知道绕一圈有什么好处,一个类b实现一个接口,该类的属性又是抽象类a的子类,a有一个属性类型是接口类和有参构造,并且有一个用于业务的抽象方法,不同类实现a,当newb时相当于new了抽象类a当时又得把自己传进去
解释器模式:神经病,多个实现类实现接口,接口的方法参数是另一个实体类,感觉和上面一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值