
设计模式
文章平均质量分 68
主要记录Java常用的一些设计模式
血煞长虹
欢迎交流切磋,欢迎吐槽!
金币不够的小伙伴,想下载我的资源时,可以留言,无偿发放哦!
展开
-
java设计模式之—追美眉的技术:状态模式(State):同一个方法,根据不同的状态来执行不同的结果
对读者的要求:1、具备面向对象思想。2、对抽象类、接口有一定了解。核心思想:同一个方法,根据不同的状态,表现出不同的结果。案例一:MM的cry().可以愉快的哭、高兴的哭、傻傻的哭等。设计思路:1、定义一个MmState抽象类,分别:cry()、smile()、say()三个方法;2、定义MM的一系列状态的具体实现类,比如:MMHappyState、MMUnHappyState;3、MM类定义mmCry()方法,入参MmState(传入一个MmState具体实现类)。//1.定义MM原创 2021-04-02 20:03:56 · 914 阅读 · 0 评论 -
java设计模式之—追美眉的技术:命令模式(Command)
概述:模式比较简单,一个发起命令,一个执行命令。核心思想:Command接口类定义一个execute()命令执行和 unDo()命令回撤。案例一:MM向boy发起一组命令,boy执行命令设计思路:1、定义一个Command抽象类,分别定义两个方法:execute()、unDo();2、给Boy类分别定义执行命令的方法、回滚命令的方法:executeCommands()、unDoCommands();3、定义一些具体命令类,并继承Command类诸如:ShoppingCommand、.原创 2021-04-02 19:38:12 · 190 阅读 · 0 评论 -
java设计模式之—追美眉的技术:中介者模式(Mediator)和 外观模式(Facade)核心思想
概述:1、中介者模式(Mediator),好比一个大管家,处理家族内部事务。核心:处理内部事务(统一调和)。2、外观模式(Facade),好比国家外交部一把手。核心:处理一切外部事务(统一入口)。举例说明:一、中介者模式1、boy 和 MM,在谈恋爱:七大姑,八大姨,你一嘴,她一嘴的分别给Boy和MM出主意,甚至他们之间还相互私下沟通。相互之间错综复杂,显得很乱。怎么能调理清晰一点呢?2、关于boy和MM谈恋爱这事儿,所有人都不要相互沟通了,都找居委会大妈说。最后居委会大妈统一口原创 2021-04-02 17:44:46 · 210 阅读 · 0 评论 -
java设计模式之—追美眉的技术:桥接模式Bridge (适用范围:一个大类涵盖各种具体实现类,每个实现类又区分为不同的维度(子类之间可能出现排列组合,两个维度相互交叉))
核心思想:就是在父类中聚合子类(高内聚),避免出现两个维度的类之间有交叉现象。使 WildGift、WarmGift、ColdGift和具体的Flower、Rouge、Ring彼此独立,低耦合。而不是出现ColdFlower、WarmFlower、WoldFlower、ColdRing、WarmRing、WoldRing、这种情况出现。原创 2021-04-01 19:00:32 · 221 阅读 · 1 评论 -
java设计模式之—工厂模式Spring Factory (三套方案:步步深入,模拟Spring工厂),涵盖JDOM对XML解析
一、目的:为你揭开Factory的神秘面纱,其实很简单。本案例适用人群:1、对面向对象有深入了解。2、接口、抽象类有所了解。3、对反射了解。可以帮你:1、爱上工厂(只用关注自己的业务,生产新类、给类创建新方法,通过配置文件xml通知一个Spring就可以了)。2、学会读取配置文件。3 、学会解析XML文件。二、工厂模式的前世今生举例说明:有一个Person1、他可以有很多交通工具(Vehicle),都有一个Run的方法:Car、Tank、Train、Plane、Broom等等。2、他原创 2021-03-31 05:23:36 · 3053 阅读 · 0 评论 -
java设计模式:动态代理Dynamic_Proxy详解 (使用场景:事务、日志、监控等)
编者的话:如果你想灵活,对方法执行前后(添加代码),进行监控(比如:方法运行[多少毫秒、记录日志、事务提交或回滚、权限监控、数据拦截、数据过滤]等)。时,动态代理模式,最适合你。特别提示:1、本案例主要是阐述动态代理的原理,及其模拟过程,可以提示对动态代理的理解和掌握。2、JDK6以上版本,系统自带的有动态代理类Proxy,我们可以直接用,我们只需要专注于我们的InvocationHandler就可以了。原创 2021-03-27 03:50:05 · 2972 阅读 · 0 评论 -
java设计模式之—策略模式strategy (案例:模拟java.lang.Comparable 和 java.util.Comparator) 灵活扩展,深入解析,让你专心写算法。
策略模式:共性的东西抽离出来,解放你的左手,专心写算法。实际场景,需要哪个算法,信手拈来。正如下面这段代码:sortImpl.sortArr(cats, new CatWeightComparator());//根据体重排序。参考:马士兵老师的strategy视频课,在视频课的基础上略有改进和深入。原创 2021-03-21 22:17:40 · 218 阅读 · 0 评论 -
java设计模式之—迭代器 Iterator (案例:分别模仿ArrayList 、LinkList 实现Collection接口 和 Iterator迭代方法)
参考:该案例是马士兵老师的部分案例。马老师只讲述了ArrayList的Iterator迭代方法,未讲述LinkList的迭代方法。LinkList实现Iterator比较烧脑筋。原创 2021-03-20 05:42:41 · 308 阅读 · 0 评论 -
java设计模式之—OO面向对象思维 Object Oriented(农场一头小母牛,每年生头小母牛,母牛5岁产母牛,20年上多少牛?)
参考:该案例是马士兵老师课后作业。 课程本身是:老张开车去东北,撞了……一首歌,提供的案例过于简单。以课后作业为例,该案例短小精悍!让我们一起来较深层次的学习面向对象。原创 2021-03-18 18:48:06 · 301 阅读 · 2 评论 -
java设计模式之—责任链模式 ChainOfResponsibility(提供两套方案)
参考:根据马士兵老师课程整理。 目的:相互交流学习,日后便于自己查看。 要求:Demo1、对Request 请求的字符串数据,进行过滤,并替换掉。Demo2、在demo1基础上,逆向调用责任链,处理Response。控制台输出答案原创 2021-03-18 01:23:14 · 254 阅读 · 0 评论 -
java设计模式之——观察者模式observer (附带读取配置文件)
参考:根据马士兵老师课程整理。目的:相互交流学习,日后便于自己查看。要求:小孩睡醒后,要吃东西,监护者对小孩做出一些列反映。据此模拟为程序。延伸:小偷偷东西,有望风的小弟看风,也比较适合用这个设计模式原创 2021-03-16 01:50:24 · 346 阅读 · 0 评论