C#进阶之面向接口编程

作者: LuyaoCore | 来源:发表于2019-04-04 00:41 被阅读0次

在阅读本文之前,您需要对面向对象思想以及接口有一个较为清楚的认识!

Tips:

此篇文章着重讲述面向接口编程的代码搭建方式,至于原理以及一些基础知识可以参照这篇文章:面向接口编程思想基础

那么,让我们开始吧~

假设您准备研发一个moba类游戏(类似英雄联盟或者王者荣耀)。每个人物都必须包含两个字段:名字和人物类型,两个方法:介绍自己的性格和释放技能。

为了体现面向对象思想,我们需要做的第一步应该是为每个人物都设计一个独立的类,代码如下:

游戏人物之锤石 游戏人物之德莱文

有了这两个类我们就可以叫人物模拟一些场景啦,比如叫他们自我介绍.

于是你可能会写出以下代码和运行结果:

嗯。。。看起来似乎没什么问题。

但如果我先有了第三个人物,那该怎么办呢?

除了重新写个人物类以外,还得在main方法里面重新实例化以及调用一次。

但是LOL可以是一百多个英雄!如果全部都要做自我介绍的话岂不是得在main方法里面实例化以及调用一百次?

于是我们可以开始考虑使用接口了。

至于好处我先不说,先看代码。

因为每个英雄都包含了固有的两个字段和两个方法,所以我们可以写个接口来限定它。

然后我们的每个英雄类都去继承这个接口

核心代码警告

再来个自我介绍的方法:

于是乎,我们的main方法就被简化成了这样:

两种方式的差异就显而易见了吧。

在使用了面向接口的编程方式后,我们如果要新增一个任务,就只需要写个人物的类来继承我们的IHeros接口,然后在Main里面调用一下。不管以后需要新增多少个人物,都是一样的简单。

但是使用第一种方式的话,我们就需要在Main写非常多的冗余代码。

而且万一以后我们需要给英雄们新增加一个方法(比如跳一段舞)的话,我们就需要手动去修改所有的英雄类,英雄类多了之后难免会漏掉那么百分之一二,更恐怖的是我们需要挨个修改main方法里面的逻辑。

而面向接口的编程方式很好地解决了这个问题。

如果我们现在又一百个英雄都需要新增跳舞的方法。我只需要在IHeros接口里新增一个跳舞的方法:

然后我所有的英雄类都会报这个错误:

这样可以完美地防止在修改英雄类的时候会漏掉。

而且我只需要修改一下ShowMyself里面的ShowHero()方法就完事儿。甚至都不需要修改Main方法!

相关文章

  • C#进阶之面向接口编程

    在阅读本文之前,您需要对面向对象思想以及接口有一个较为清楚的认识! Tips: 此篇文章着重讲述面向接口编程的代码...

  • C#面向接口编程

    面向接口编程附属于面向对象思想体系,属于其一部分。接口,在表面上是由几个没有主体代码的方法定义组成的集合体,有唯一...

  • 《Oracle Java SE编程指南》15-05:面向接口编程

    内容导航: 前言 1、接口的作用 2、面向接口编程 前言 接口的核心作用是面向接口编程。 面向接口编程 是一个非常...

  • Android 面向接口编程

    关键词:Android、POP、面向接口编程 、面向过程、面向协议 一、概述 面向接口编程是面向对象编程的一种实...

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • Android 网络框架--Retrofit2 架构分析

    面向接口编程 面向接口编程,模块化编程的必备技能,其乃实现解耦,增强扩展性的重要手段。 面向接口编程具体指的是什么...

  • 面向指针编程(一)

    面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦即函数...

  • 8、使用注解开发

    8.1:面向接口编程 大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程 ...

  • iOS面向接口编程(面向protocol编程)

    iOS面向接口编程(面向protocol编程) 前言 面向接口编程已经是老生常谈了,但是最近在做项目重构中发现,团...

  • 面向接口编程与策略模式

    面向接口编程 & 面向对象编程 Interface-based programming, also known a...

网友评论

    本文标题:C#进阶之面向接口编程

    本文链接:https://www.haomeiwen.com/subject/sabzbqtx.html