持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第18天,点击查看活动详情
适配器是一个转换器,将类的接口转换成另一种兼容的接口,解决了两个对象之间不兼容导致无法调用问题。适配器有三种模式,类适配器、对象适配器、接口适配器。
在实际开发中,比如登陆业务,最初设计是login方法中判断账户密码是否正确的方式登陆。后来需要使用短信验证的方式登陆,就需要继承原来的登陆类,重写login方法。再后来需要使用微信登陆,也是同样方法进行修改。
定义一个操作的模版父类,而将一些代码步骤扩展在子类中。模版方法使得子类可以不改变一个算法的结构来重定义该算法。
在代码开发中,常常会出现很多逻辑相似的地方,而这会导致很多重复的代码,后期需要更改层次高的逻辑,那么所涉及到该逻辑的业务代码都需要进行更改。利用模版方法模式,就可以将代码中相同逻辑的过程抽象成一个抽象类,完全同样的代码可以使用具体方法,而代码不一样的地方则抽象为抽象方法。在扩展该相同逻辑业务代码时,只需要继承该抽象类,再实现其抽象方法。
实际开发中的应用场景很多都使用了模版方法模式,如数据库访问的封装、Junit单元测试、servlet中关于doGet/doPost方法的调用等。
观察者模式又称为发布-订阅模式,定义了对象之间一种一对多的依赖关系,使得一个对象改变状态,则所有依赖它的对象都会得到通知并主动更新。
观察者模式主要用于1对N的通知中,当一个对象状态变化,其他对象会收到通知,并作出相应的变动。实现方式有两种,推和拉。