前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口三大功能:约束,抽象,策略组合

接口三大功能:约束,抽象,策略组合

作者头像
废江_小江
发布2022-09-05 14:01:47
3230
发布2022-09-05 14:01:47
举报
文章被收录于专栏:总栏目

接口作用

接口起到了约束和抽象出功能的作用约束

约束

例如java中collection接口继承iterable接口,使得集合都具有迭代器遍历的功能抽象出功能。当继承了iterable接口的时候,这些集合类都拥有了这项功能,迭代器遍历的功能

抽象出功能

例如线程中,要实现一个线程需要继承thread,然后写其中的run方法,这时可以把run方法抽象出来,用一个接口Runnable接口定义run方法,当Thread继承了这个接口,这时我们可以在构造方法中传入runnable的实现类,使得run方法可以从中抽象出来

策略模式

这其实也算是接口的第三个作用

代码语言:javascript
复制
public class Context {
   private Strategy strategy;
 
   public Context(Strategy strategy){
      this.strategy = strategy;
   }
 
   public int executeStrategy(int num1, int num2){
      return strategy.doOperation(num1, num2);
   }
}

主函数

代码语言:javascript
复制
public class StrategyPatternDemo {
   public static void main(String[] args) {
      Context context = new Context(new OperationAdd());    
      System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
 
      context = new Context(new OperationSubtract());      
      System.out.println("10 - 5 = " + context.executeStrategy(10, 5));
 
      context = new Context(new OperationMultiply());    
      System.out.println("10 * 5 = " + context.executeStrategy(10, 5));
   }
}

理解

其实算是抽象出功能的一种延申,策略模式将很多功能组合起来(通过很多类去实现一个接口,每个类中实现不同的功能),这些类等待着被使用。而最常见的使用方式(不被外界发现,类似spring中的注入,我所写的类中需要哪个功能,就将哪个功能对应的类注入到我的类中)。说简单点,就是我的类中存在一个接口变量,然后要对其进行赋值,构造函数中则传入前面的功能实现类。这就是策略模式。

废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 转载请注明原文链接:接口三大功能:约束,抽象,策略组合

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接口作用
    • 约束
      • 抽象出功能
      • 策略模式
        • 理解
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档