HIT软件构造设计模式

1.适配器模式:如果用户想输入的参数形式与某个类(假设为A类)方法的参数形式不一样该怎么办呢?我们是要强迫用户去改变自己的输入形式满足这个接口吗?本着让用户舒适的原则,我们让用户还是那么输入,那该如何匹配我们的参数呢?答案就是再设计一个接口,这个接口中就有与用户输入参数形式相同的方法,然后我们再设计个B类实现这个接口,在B类中实现这个方法的时候我们将其委托给A类的对象,程序员将参数形式转化为符合A类方法的参数形式。(就是替用户做了本来他该做的事)。

2.装饰器模式:允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。通过委托+继承去不断拓展功能。基础功能通过委托完成,拓展的功能通过各个子类不同的实现去完成。

3.策略模式:有多种算法可以去实现一个任务,那么我们作为用户怎么便捷的去切换我们想实现的算法呢?利用委托,设计一个接口,多种算法(类)分别实现这个接口,我们将这个接口作为参数传递给我们的实现类,这样我们就可以通过委托,通过传入不同对象,调用对象的共性方法,来达到我们动态切换算法的目的。(18年考察,今年可能也会考)

4.访问者模式:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。

这种模式非常容易与策略模式混淆,这两种模式最大的不同在于访问者模式还要将调用者作为自己的参数,即使用调用者的属性。ADT只需要开放自己的属性accept(vistor),client通过它来设定visitor的操作并在外部调用。

5.visitor模式强调的是对ADT的访问,而strategy强调的则是对ADT某部分功能的替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值