策略模式

接口不具有实现代码,所以继承接口无法达到代码的复用。这意味着:无论何时你需要修改某个行为,必须往下追踪并在每一个定义此行为的类中修改它。所以适当的时候可以先对接口做一些基础实现。直接实现接口的行为也是一种面向实现编程。

策略模式:定义了算法族,分别封装起来,让他们之间可以互换(实现了相同的接口),此模式让算法的变化独立于使用算法的客户。

 1 namespace DesignPattern
 2 {
 3     public class Duck
 4     {
 5         public IFlyBehavior IFlyBehavior;
 6         public IQuackBehavior IQuackBehavior;
 7         public Duck(IFlyBehavior fly,IQuackBehavior quack)
 8         {
 9             this.IFlyBehavior = fly;
10             this.IQuackBehavior = quack;
11         }        
12         public void Display()
13         {
14            
15         }
16     }
17 }

OO原则:

1. 封装变化

2. 多用组合少用继承

3. 针对接口编程,不针对实现编程

posted @ 2015-07-26 22:18  senki  阅读(156)  评论(0编辑  收藏  举报