浅谈设计模式

状态模式

核心思想就是用于解决一个物体在不同状态下复杂的逻辑行为,比如一个英雄有待机状态,行走状态,攻击状态,以后可能还会添加眩晕状态,冰冻状态一系列状态。
如果使用平常代码来写的话,就会使用分支语句来判断状态,这样会造成一个类其中包含大量代码的情况,这无疑是非常麻烦的,并且不利于后期增加新的状态。
所以抽象出一个状态接口用来表示所有的状态,接口包含进入状态的方法,执行状态的方法,退出状态的方法,
给主角创建一个私有的状态接口变量用来存储当前状态,当要改变状态时就调用原状态的退出方法,再设置新状态以及调用新状态的进入和处理方法,后期要增加新状态只需要增加新的状态类去继承状态接口就行,不用再改前面代码
在这里插入图片描述

有限状态机

传送门

外观模式

大家有没有自己做饭的经历,小明和小李合租,做饭的时候小明要吃青椒炒蛋,于是小明去厨房用厨具,花生油,做完一盘青椒炒蛋。然后小李要吃西红柿炒蛋,于是去厨房用厨具,过了一会,问小明,你把厨具放哪里去了。
于是这就出现问题,但是如果他们请个保姆,小明和小李把想要吃什么给告诉保姆,保姆去帮他们去做,这样因为是一个人去使用,就不会出现厨具乱丢的情况,这就是外观模式。
核心思想就是当一个模块要调用各个子系统去实现一个功能时,使用一个外观类去具体调用各个子系统,而外观类只要对外提供一个接口让其他模块去调用。
在这里插入图片描述

单例模式

核心思想,自身设置一个静态的自身类属性,在实体化出一个此类实例赋值给静态属性,这样就可以在任何模块方便调用。

中介者模式

核心思想,让各个系统通过一个中介者类来相互调用,减少各个系统之间的直接调用,让代码更加清晰。

桥梁模式

抽象调用方式,抽象出桥,就想桥一样把两个变化点给分开,不管桥的两端怎么变化,桥不会变,
给变化点的类抽象出父类,再创建出父类行为,也就是桥。
给手机贴膜,一个手机有可能贴不同材质的膜,一种材质的膜也有可能贴不同品牌的膜,不变的是贴膜这个行为,也就是桥不变,
在这里插入图片描述

策略模式

达到一个目的有不同的方法,比如一个人要从上海去北京,它可以选择做高铁去,也可以选择做火车去,也可以选择做飞机去,区别只是到达的时间不同,消耗的金钱不同,但最终都能到达北京,这种不同的方式就是不同的策略。
核心思想,把实现算法抽象出一个接口,具体调用时使用接口,在具体实现时,让客户自己去选择使用哪个算法实现。
在这里插入图片描述

模板方法模式

一个南方人请客吃饭,首先他要先点菜,然后吃东西(吃米饭),最后买单
一个北方人请客吃饭,首先他要先点菜,然后吃东西(吃面条),最后买单
可以发现上面两种请客吃饭的步骤情况就和模板中刻出来一样,不同的只是其中吃东西不一样,这就是模板模式。
核心就是在抽象类中定义一个请客的方法,然后定义点菜,吃东西,买单三个抽象方法,在请客方法中调用三个方法,然后每个继承类对这三个方法有不同实现就重写达到不同的效果。在这里插入图片描述

工厂模式

具体解释博文

建造者模式

博文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种面向对象的编程语言,设计模式可以帮助我们更好地编写面向对象的代码。在JavaWeb项目中,设计模式可以帮助我们解决一些常见的问题,比如复杂的业务逻辑、代码重用、可扩展性等等。 下面是一些常见的设计模式在JavaWeb项目中的使用: 1. MVC模式:MVC模式是一种常见的设计模式,它将应用程序分为三个部分:模型、视图和控制器。在JavaWeb项目中,我们可以使用MVC模式来分离业务逻辑和用户界面,并且可以更容易地进行修改和维护。 2. 工厂模式:工厂模式是一种创建型设计模式,它可以帮助我们更好地组织代码并提高代码的可复用性。在JavaWeb项目中,我们可以使用工厂模式来创建对象,并且可以根据需要动态地创建不同的对象。 3. 单例模式:单例模式是一种创建型设计模式,它保证了一个类只有一个实例,并提供了一个全局访问点。在JavaWeb项目中,我们可以使用单例模式来管理共享资源,比如数据库连接池。 4. 观察者模式:观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,它的所有依赖对象都会得到通知并自动更新。在JavaWeb项目中,我们可以使用观察者模式来实现事件驱动的编程。 5. 装饰器模式:装饰器模式是一种结构型设计模式,它允许我们动态地添加或修改一个对象的功能。在JavaWeb项目中,我们可以使用装饰器模式来扩展一个类的功能,而不需要修改它的原始代码。 当然,在JavaWeb项目中还有很多其他的设计模式可以使用,具体使用哪些设计模式需要根据具体的情况而定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值