文章 2024-07-02 来自:开发者社区

Head First设计模式学习笔记

Head First设计模式学习笔记 今天我们将深入探讨《Head First设计模式》这本经典的学习笔记,帮助您理解和应用软件设计中的关键概念。 为什么要学习设计模式? 设计模式是在软件设计中反复出现的问题的解决方案,它们被广泛应用于提高代码的重用性、灵活性和可维护性。掌握设计模式不仅可以帮助我们更好地理解优秀的软件设计实践,还能够提高我们的设计能力和编码水平...

文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——职责链/责任链模式(Chain of Responsibility)(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入学校OA系统的采购审批项目: 需求是采购员采购教学器材如果金额 小于等于5000(0<x<=5000),由教学主任审批如果金额 小于等于10000(5000<x<=10000),由院长审批如果金额 小于等于30000(10000<x<=30000),由副校长审批如果金额 超过30000以上(30000<x),由校长审批传统方式实现创建一个不同的审....

【设计模式——学习笔记】23种设计模式——职责链/责任链模式(Chain of Responsibility)(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入有各种鸭子,比如野鸭、北京鸭、水鸭等。 鸭子有各种行为,比如走路、叫、飞行等。不同鸭子的行为可能略有不同。要求显示鸭子的信息传统方案实现不同的鸭子继承一个父类Duck,如果是相同的行为就继承,不同行为就重写方法实现【鸭子抽象类】package com.atguigu.strategy; public abstract class Duck { public Duck() { ...

【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入请编写程序完成APP抽奖活动具体要求如下:假如每参加一次这个活动要扣除用户50积分,中奖概率是10%奖品数量固定,抽完就不能抽奖活动有四个状态: 可以抽奖、不能抽奖、发放奖品和奖品领完,活动的四个状态转换关系图如下一开始的状态为“不能抽奖”,当扣除50积分成功之后,状态就变成了“可以抽奖”状态介绍基本介绍状态模式: 它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和....

【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——解释器模式Interpreter(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入通过解释器模式来实现四则运算,如计算a+b-c的值,具体要求先输入表达式的形式,比如a+b+c-d+e,要求表达式的字母不能重复在分别输入a,b,c,d,e的值最后求出结果传统方案编写一个方法,接收表达式的形式,然后根据用户输入的数值进行解析,得到结果【分析】如果加入新的运算符,比如*或/等等,不利于扩展,另外让一个方法来解析会造成程序结构混乱,不够清晰【改进】可以考虑使用解释器模式,即....

【设计模式——学习笔记】23种设计模式——解释器模式Interpreter(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,可以从备忘录对象恢复到大战前的状态传统设计方案针对每一种角色,设计一个类来存储该角色的状态【分析】一个对象,就对应一个保存对象状态的对象, 这样当我们游戏的对象很多时,不利于管理,开销也很大传统的方式是简单地做备份,new出另外一个对象出来,再把需要备份的数据放到这个新对象,但....

【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——中介者模式Mediator(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入案例一普通实现在租房过程中,客户可能去找房东问房子是否可以租,但是房东可能要和家人进行一系列的沟通,最后还可能派出另一个家庭成员来和客户进行交流,整个沟通过程非常复杂、沟通线路繁多。如果是写成程序的模式,不同成员之间需要留好接口方便成员之间互相进行调用【分析】各个成员彼此联系,你中有我,我中有你,不利于松耦合各个成员之间所传递的消息(参数)容易混乱当系统增加一个新的成员时,或者执行流程改....

【设计模式——学习笔记】23种设计模式——中介者模式Mediator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——观察者模式Observer(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入有一个天气预报项目,需求如下:气象站可以将每天测量到的温度、湿度、气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)需要设计开放型API,便于其他第三方也能接入气象站获取数据提供温度、气压、湿度的接口测量数据更新时,要能实时的通知给第三方原始方案实现设计一个WeatherData类,类里面的方法如下:getTemperature0:获取温度getHumidity0:获取湿度ge....

【设计模式——学习笔记】23种设计模式——观察者模式Observer(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入编写程序展示一个学校院系结构: 需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系【传统方式】将学院看做是学校的子类,系是学院的子类,小的组织继承大的组织分析: 在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,不能很好实现遍历操作(有可能计算机学院的系是使用数组存储的,信息工程学院的系是使用集合存储的,遍历的方式不....

【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
文章 2023-10-13 来自:开发者社区

【设计模式——学习笔记】23种设计模式——访问者模式Visitor(原理讲解+应用场景介绍+案例介绍+Java代码实现)

案例引入要求测评系统需求:将观众分为男人和女人,对歌手进行测评,当看完某个歌手表演后,得到他们对该歌手不同的评价(比如 成功、失败 等)传统方案Man和Woman里面都有“成功”、“失败”的方法【分析】如果系统比较小,这样设置是可以的,但是考虑系统增加越来越多新的功能时,对代码改动较大(如需要增加一个新的评价方式,就需要在Man和Woman类中同时添加),违反了ocp原则,不利于维护扩展性不好,....

【设计模式——学习笔记】23种设计模式——访问者模式Visitor(原理讲解+应用场景介绍+案例介绍+Java代码实现)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。