Java中的设计模式之适配器、模板设计模式

今天咱们再来认识

两个设计模式

适配器设计模式

适配器

在使用监听器的时候, 需要定义一个类事件监听器接口。通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐。适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可。


适配器原理

适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的。


适配器类需要定义成抽象的,因为创建该类对象,调用空方法是没有意义的,为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.


举个例子:

不知道大家的高中都是什么样的哈~

(就是一个例子,大家写代码的时候不要这么写哈~)

640?wx_fmt=png


这就是娜娜高中的时候学习的科目,直接实现这个接口的话,就表示在高中所有科目都要学习,但是我们上学的时候是分文科理科特长生的,(不知道现在高考是什么样子了)那么就是有的科目,高考不考就没有必要去学习了


这个时候就可以创建一个中间类。所有方法都是空的,实现这个类没有意义,所以我们把这个类定义为抽象的。

640?wx_fmt=png


这个时候李雷是一个理科生就只要学习语数外+理综就可以了

640?wx_fmt=png


韩梅梅是文科生那就是 语数外+文综 就好了

640?wx_fmt=png

特长生这边娜娜不了解

就不举例子了~

这样适配器的原理是不是就很好理解了


模版设计模式

模版设计模式的概述

模版方法模式就是定义一个算法的骨架,而将具体的算法延迟到子类中来实现


上面有点看不明白?

没关系咱们来动手做一下~

首先我们来写一段程序,用来获取程序运行的时间。

640?wx_fmt=jpeg

这样就可以求出这个for循环的运行时间大约2.5s~


但是加入我们想测试别的代码执行的时间,就需要一个个的去添加代码,不利于操作,我们现在就可以把计算时间的部分提取出来~


优化代码:

1)把获取时间的方法定义成为一个抽象的类

2)定义一个final方法把算法写进去

3)定义一个抽象的code方法(用于被子类继承,把需要计时的程序写进去)

640?wx_fmt=png


代码的执行:

640?wx_fmt=png

优点和缺点

优点

使用模版方法模式,在定义算法骨架的同时,可以很灵活的实现具体的算法,满足用户灵活多变的需求


缺点

如果算法骨架有修改的话,则需要修改抽象类


那么就先到这里了

再见了


u1F4AA.0.png扩展阅读

Java网络编程之UDP协议

java中的设计模式之单例模式、工厂模式


来源:Java联盟

版权声明:文章来源网络,版权归作者本人所有,如侵犯到原作者权益,请与我们联系删除或授权事宜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种强大的编程语言,它提供了许多不同类型的设计模式来帮助开发人员编写更加模块化、可扩展和易于维护的代码。 以下是一些Java常用的设计模式: 1. 单例模式(Singleton Pattern):保证一个类只有一个实例,并提供一个全局访问点。 2. 工厂模式(Factory Pattern):使用工厂方法来创建对象,而不是直接调用构造函数。 3. 抽象工厂模式(Abstract Factory Pattern):提供一个接口来创建一系列相关或依赖对象的工厂,而不需要指定它们的具体类。 4. 观察者模式(Observer Pattern):定义对象之间的一对多的依赖关系,当一个对象改变状态时,它的所有依赖对象都会收到通知并自动更新。 5. 适配器模式(Adapter Pattern):将一个类的接口转换成另一个客户端所期望的接口,从而使得原本不兼容的类能够协同工作。 6. 模板方法模式(Template Method Pattern):定义一个算法的骨架,将一些步骤延迟到子类实现,使得子类可以改变算法的某些特定步骤,而不改变算法的整体结构。 7. 装饰器模式(Decorator Pattern):动态地给一个对象添加一些额外的职责,同时又不改变其原有的结构。 8. 迭代器模式(Iterator Pattern):提供一种方法访问一个容器对象各个元素,而又不暴露该对象的内部细节。 9. 策略模式(Strategy Pattern):定义一系列的算法,将它们封装起来,并使它们可以互相替换,从而使得算法的变化独立于使用它们的客户端。 10. 命令模式(Command Pattern):将一个请求封装成一个对象,从而使得可以用不同的请求对客户端进行参数化,并支持可撤销的操作。 以上只是一些Java常用的设计模式,不过Java还有许多其他类型的设计模式可以用来帮助解决各种问题。在实际开发,根据具体的需求和情况选择合适的设计模式非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值