P28接口、依赖反转、单元测试
回溯记录:
2021/12/27回溯
一、P28内容总结
- 接口
- 依赖与耦合
- 依赖反转原则(SOLID中的D)
- 单元测试
二、接口:服务的提供者实现接口,服务的消费者引用接口
//实例:对一组整数进行求和与求平均值的操作
//这组整数可能存于数组也可能存于ArrayList里
方法一:不使用接口时
using System;
using System.Collections;//为引入ArrayList
namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{
int[] nums1 = new int[] {
1, 2, 3, 4, 5 };
ArrayList nums2 = new ArrayList {
1, 2, 3, 4, 5 };
Console.WriteLine(Sum(nums1));
Console.WriteLine(Avg(nums1));
Console.WriteLine(Sum(nums2));
Console.WriteLine(Avg(nums2));
}
static int Sum(int[] nums)
{
int sum = 0;
foreach (var n in nums)
{
sum += n;
}
return sum;
}
static double Avg(int[] nums)
{
int sum = 0;
double count = 0;
foreach (var n in nums)
{
sum += n;
count++;
}
return sum / count;
}
static int Sum(ArrayList nums)
{
int sum = 0;
foreach (var n in nums)
{
//ArrayList元素是object类型,需要进行类型转换
sum += (int)n;
}
return sum;
}
static double Avg(ArrayList nums)
{
int sum = 0;
double count = 0;
foreach (var n in nums)
{
sum += (int)n;
count++;
}
return sum / count;