设计模式

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

定义了一个对象,该对象封装了一组对象的交互方式。对象之间的通信将封装在中介对象中。对象不再直接相互通信,而是通过中介进行通信。这减少了通信对象之间的依赖性,从而减少了耦合。

优点 避免一组交互对象之间的紧密耦合。 可以独立地改变一组对象之间的交互。

类图 对应中介对象来说,互相交互的对象叫做同事类,中介者对象维护同事类之间的关系,中介对象需要知道所有同事对象,所以也会带来一个问题,当同事类过多时,中介者类将异常复杂。
在这里插入图片描述
1.Mediator:抽象中介类,用于与各同事对象之间进行通信。 2.ConcreteMediator:具体中介类,协调各同事类。 3.Colleague:抽象同事类。 4.ConcreteColleague:具体同事类。

代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

优点 隐藏原始对象并控制对象的访问。 访问对象时提供其他的功能。 类图
在这里插入图片描述
说明:
1.Subject: 一个客户端可用的公开的功能接口。 2.RealSubject:实现 Subject 接口的类,提供了接口方法的具体实现。
3.Proxy:实现 Subject 接口的代理类,通过 RealSubject 类的业务逻辑方法来实现抽象方法,可以附加自己的操作。

责任链模式是一种由命令对象源和一系列处理对象组成的设计模式。每个处理对象都包含定义它可以处理的命令对象类型的逻辑;其余的传递给链中的下一个处理对象。还存在一种机制,用于将新处理对象添加到该链的末尾。责任链模式在结构上与装饰器模式几乎相同,不同之处在于对于装饰器,所有类都处理请求,而对于责任链,链中的一个类恰好处理请求。

优点 避免将请求的发送方与其接收方耦合。 可以使用多个接收器处理请求。 类图
在这里插入图片描述
handler:抽象处理者。

ConcreteHandler:具体处理者,接受到请求后,可以选择处理请求或者传递给下一个处理者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值