行为型模式第一组

 观察者模式:

代码逻辑:

实例化老板,和具体的观察者(名字,老板名),通知者类有泛型集合,将同事1和同事2加入到泛型集合里面,(也可以删除),通过遍历,对象不同的变化,方法相同,显示出相应的信息

 

何时使用:

1.当一个对象的改变需要同时改变其他对象

 

好处:

1.一个抽象模型有两个方面,其中一方面依赖于另一方面,这时用观察者模式可以将这两者封装在独立的对象中使它们各自独立的该百年和复用

2.观察者模式所作的工作其实就是在解耦。让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响另一边的变化

 

模板方法:

代码逻辑:

把试卷的各个题的类中的题都写出来,答案采用虚方法,在学生甲抄试卷重写答案,

 

何时使用:

1.定义一个操作中的算法的骨架(试题),而将一些步骤延迟到子类中(答案)。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

2.当不变和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模型把这些行为搬移到单一的地方,这样就帮助子类摆脱重复不变行为的纠缠

 

命令模式:

代码逻辑:
实例化考肉串者,实例化考肉串还是鸡翅的命令,在实例化服务员,在服务员中有泛型集合,可以用来存储各种命令,然后再把这些命令遍历,根据不同对象调用相同方法,显示相应的数据

 

何时使用:

1.将一个请求封装为一个对象(command类接受不同的命令),从而使你可用不同的请求对客户进行参数化(将不同的请求传到服务员中,调用不同请求的方法,使得考肉串者知道考不同的东西);对请求排队或记录请求日志,以及支持可撤销的操作

2,可以新增命令,也可以删去命令

 

状态模式:

代码逻辑:通过实例化工作类,根据工作类中的时间属性值,进入到上午状态(固定的),然后根据时间属性值的变化,在上午类中根据判断实例化中午状态,以此类推。

 

何时使用:

1.当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时,就可以考虑使用状态模式了

2.当一个对象的内在状态改变时允许改变其行为(时间变化,人员发生行为上的变化),这个对象看起来像是改变了其类(这个work类中方法实例化上午类,根据情况实例化中午类和下午类等,在主客户端没有发生实例化,但是在类中发生了实例化,用户时看不到这个变化的,所以说看起来像是改变了其类)

 

职责链模式:

代码逻辑:

实例化三个管理者,设置上下级,实例化请求,根据不同的请求,一级一级向上批,客户端的申请都是由“经理发起的”,但是实际谁来决策由具体管理者类处理,客户端不知道

 

何时使用:

1.使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止()

2.接收者和发送者都没有对方的明确信息,且链中的对象自己并不知道链的结构。结果是职责链可简化对象的相互连接,它们仅需保持一个指向其后继者的引用,而不需保持它所有的选接收者的引用(代码是一级套一级)

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值