ToB企服应用市场:ToB评测及商务社交产业平台

标题: Strategy pattern and Polymorphism [打印本页]

作者: 饭宝    时间: 2023-8-31 02:11
标题: Strategy pattern and Polymorphism
Simple example - Computer and USB interface

现代人对计算机、USB接口还有各种设备之间的关系都很熟悉,而这些模块组成的系统正是策略模式的最佳范例。
  1. public interface USB {
  2.     public void read();
  3. }
复制代码
  1. public class KeyBoard implements USB{
  2.     @Override
  3.     public void read() {
  4.         System.out.println("读取键盘数据...");
  5.     }
  6. }
  7. public class Mouse implements USB{
  8.     @Override
  9.     public void read() {
  10.         System.out.println("读取鼠标数据...");
  11.     }
  12. }
复制代码
  1. public class Computer {
  2.     private USB usb;
  3.     public void setUSB(USB usb){
  4.         this.usb = usb;
  5.     }
  6.     public void do(){
  7.         usb.read();
  8.     }
  9. }
复制代码
  1. public static void main(String[] args) {
  2.     Computer computer = new Computer();
  3.     computer.setUSB(new KeyBoard());
  4.     computer.do();
  5.     computer.setUSB(new Mouse());
  6.     computer.do();
  7. }
复制代码
Input:
  1. 读取键盘数据...
  2. 读取鼠标数据...
复制代码
The difference between the two

策略模式和多态在使用场景上,还是很类似的。
但总体来说,策略模式更像多态的升级版本,策略模式更灵活,它依靠接口,而不是继承,所以有更多操作空间。
如果设计的程序比较小,不是那么复杂,使用多态就行,如果稍微大型(复杂)一点,考虑用策略模式。
Reference

Java Polymorphism Concept
https://www.cnblogs.com/mysticbinary/p/17645988.html

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4