![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 57
28种设计模式
qq_52397731
这个作者很懒,什么都没留下…
展开
-
组合设计模式、迭代器设计模式
/*菜单和菜单项菜单 |--陕菜 |--胡辣汤 |--肉丸胡辣汤 |--河南胡辣汤 |--羊肉泡馍 |--优质 |--普通 |--双份优质 |--三秦套餐 |--川菜 |--火锅 |--辣椒就朝天椒 |--伤心凉粉 |--粤菜 |--鱼丸 |--虾丸 |--牛丸*/第一阶段:package composite.a;import java.util.ArrayList;import j原创 2021-09-07 17:36:00 · 124 阅读 · 0 评论 -
观察者模式
观察者设计模式的引入:1.在没有观察者模式的日子里:有这样一个业务场景:一个游戏中,有一个角色,角色有hp,mp,在游戏窗口中,有一些面板来显示游戏角色的hp、mp.显示Hp的有三种显示方式:球形显示、面板框文字显示和血条显示package Observer.a;class Role{ private String name; private Integer hp; private Integer mp; public Integer getHp() { return hp; }原创 2021-09-07 11:26:38 · 201 阅读 · 0 评论 -
代理设计模式、反射的知识点复习
一、1.代理模式的引入:(自己设计一个计算器)interface ICalc{ int add(int a,int b); int sub(int a,int b); int mul(int a,int b); int div(int a,int b); }class CalcImpl implements ICalc{ @Override public int add(int a, int b) { int r = a + b; return r; } @Over原创 2021-09-05 11:25:04 · 102 阅读 · 0 评论 -
策略模式-设计模式
策略模式的定义:策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式:定义了一组算法(业务规则);封装了每个算法;这族的算法运行时可互换代替(interchangeable)。应用场景:1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在原创 2021-09-02 10:37:42 · 315 阅读 · 0 评论 -
模板方法设计模式
模板方法设计模式的引入:在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。模板方法设计模式的实例:package templatepattern;import java.util.LinkedList;//在使用模板方法设计模式时,需要使用抽象类.这是因为使用抽象类可以填写方法中的具体内容。//把模板中的固定格式(成分)填充进抽象类中的方法中,而将用原创 2021-08-29 19:57:15 · 66 阅读 · 0 评论 -
装饰器设计模式
1原创 2021-08-27 20:28:09 · 90 阅读 · 0 评论 -
类和类之间的关系与七大原则
1.单一职责原则每个方法、每个类、每个框架都只负责一件事情。比如:Math.round().只负责完成四舍五入的功能,其他的不管。Reader类,只负责读取文本文件SpringMVC 只负责简化MVC的开发(框架)...原创 2021-07-04 17:54:53 · 685 阅读 · 0 评论 -
设计模式基本概述
关于设计模式1.设计模式,不是一种新的语言,也不是一种新的api,更不是什么新的语法。2.设计模式,是前辈们,不断总结、不断打磨出的设计方法。不同设计模式适用于不同的场景。3.设计模式,公认的有23种设计模式,分别对应23种设计场景,这些设计模式,我们不用怀疑他的功能。因为这些设计模式是经过长期的时间考验而留存下来的。4.千万不要以为能有任何一种设计模式,能解决任何问题,每一种设计模式只能用于适用的场景,而不是万能的。5.设计模式,有优点,也有缺点,切记防止模式的乱用。6.23种设计模式背后有7原创 2021-07-04 09:45:32 · 70 阅读 · 0 评论 -
简单工厂、工厂方法和抽象工厂
学前理解:1.概念理解:面向接口编程的示意图2.相関概念1.产品:类2.抽象产品:抽象类、接口3.产品簇:4.产品等级:简单工厂:这种设计相当脆弱!为什么呢?因为,只要作者修改了具体产品的类名,那么,客户端代码也要随之一起改变,这样,服务器端代码和客户端代码就是耦合的。我们希望的效果是:无论服务器端代码如何修改,那么客户端代码都应该不知道,不用修改客户端代码!针对于上述问题,服务器端代码一旦修改,客户端代码也要跟着修改!修改代码如下,使用简单工程设计模式!任何下层给上层暴露出原创 2021-07-06 12:01:34 · 125 阅读 · 0 评论 -
适配器模式
适配器设计模式举例一:抛出问题:1.生活中的适配器:充电器2.适配器:一个类的接口转换成客户希望的另一个接口,适配器模式让那些接口不兼容的类可以一起工作。模式探究:发现问题1.继承是为了重用add方法。但是继承比较脆弱。如果父类中有add方法,(3个参数),则会导致子类重写了父类的方法。2.用组合代替。修改举例二:说明:package shipeiqi;class Waveform{ //表示id 自增长的逻辑,为什么? private static long count原创 2021-07-03 17:54:25 · 121 阅读 · 0 评论 -
单例模式探究
package singleTon.type1;/** * 饿汉式第一种 推荐使用 * @author 李昊 * */public class SingleTonTest { public static void main(String[] args) { SingleTon instance = SingleTon.getInstance(); SingleTon instance1 = SingleTon.getInstance(); System.out.println(i原创 2021-07-03 10:45:53 · 41 阅读 · 0 评论 -
建造者模式
不用建造者模式存在的问题:需求:定义一个电脑类,并且实例化出电脑类的对象,以及给该对象的属性赋值。这样做的缺点是:1.客户端程序员,在实例化好产品的对象之后,必须为该对象的每一个属性赋值,这样对于客户端程序员来说太麻烦了。2.这样做违反了迪米特法则。这相当于你去赛格配电脑,商家把零件全给你,你自己取组装电脑。建造者模式与工厂模式的区别:工厂模式:都是直接实例化出一个类的对象即可。强调对象直接用。建造者模式,是在实例化出类的对象之后,还要给对象的属性赋值。强调使用过程。针对于问题,进行代码原创 2021-07-01 17:42:55 · 64 阅读 · 0 评论 -
原型模式:探究周报问题
原型模式(Prototype模式):解决场景: 周报问题的解决或创建对象的代价特别高。原型模式探究过程中提到的一些基础知识点:1.想序列化的话,类需要实现序列化接口。2.操作对象,底层是字节流。3.重写方法时,不能比父类抛出更大的异常,所以用try-catch处理。4.java类中的所有方法,天生都能抛出运行时异常。原型模式的探究写法1:写进去,读出来。这是深克隆。这样做的优点是,避免属性层级的关系的复杂处理。深克隆概念: 对象类型的属性,进行克隆时,地址不同。地址所指向的对象的内容应该原创 2021-06-28 16:31:53 · 117 阅读 · 0 评论