C# 面向接口编程

面向接口编程就是将对象中的某个功能提取出来作为接口,而功能的具体实现则交由继承自这个接口的实现类处理。

面向接口的好处是降低程序的耦合性,当有新的功能时只需要对新功能进行编写,不需要修改已有的代码

下面是一个简单的范例:

假设作为父类的鸭子类Duck具有飞行的功能,继承自它的两个子类大鸭子BigDuck飞得快,小鸭子LittleDuck飞的慢,通过面向接口的方式进行实现

 1     //父类
 2     public class Duck{
 3         protected IFlyBehaviour flyBehaviour;
 4         public void DuckFly() {
 5             flyBehaviour.Fly();
 6         }
 7     }
 8 
 9     //继承Duck的子类
10     public class LittleDuck : Duck {
11         public LittleDuck() {
12             flyBehaviour = new NoFly();
13         }
14     }
15 
16     //继承Duck的子类
17     public class BigDuck : Duck
18     {
19         public BigDuck()
20         {
21             flyBehaviour = new QuickFly();
22         }
23     }
24 
25     //表示飞这一功能的接口,并没有实现
26     public interface IFlyBehaviour
27     {
28         void Fly();
29     }
30 
31     //具体实现飞行为的类,继承了接口
32     public class QuickFly : IFlyBehaviour
33     {
34         public void Fly()
35         {
36             Console.WriteLine("飞行速度非常快");
37         }
38     }
39 
40     //具体实现飞行为的类,继承了接口
41     public class NoFly : IFlyBehaviour
42     {
43         public void Fly()
44         {
45             Console.WriteLine("飞行速度非常慢");
46         }
47     }

执行:

1    BigDuck bigDuck = new BigDuck();
2    bigDuck.DuckFly();
3 
4    LittleDuck littleDuck = new LittleDuck();
5    littleDuck.DuckFly();

结果:

1    飞行速度非常快
2    飞行速度非常慢

猜你喜欢

转载自www.cnblogs.com/yzz071277/p/9270895.html