VS 2008

一个类的某个行为可能有多种实现策略,可以将这个行为提取出来定义为接口,那么就可以提供这个接口的多个实现。这些类(策略)可以相互替换而不影响客户端代码。

1. 模式UML图

Core Design Patterns(13) Strategy 策略模式


2. 应用

    考虑图书折扣出售的例子,分为普通折扣价,和黄金折扣价。对于售书商来说,这两种折扣就是图书打折出售的两种策略。


Core Design Patterns(13) Strategy 策略模式

IDiscountStrategy.cs

Core Design Patterns(13) Strategy 策略模式using System;
Core Design Patterns(13) Strategy 策略模式
using System.Collections.Generic;
Core Design Patterns(13) Strategy 策略模式
using System.Linq;
Core Design Patterns(13) Strategy 策略模式
using System.Text;
Core Design Patterns(13) Strategy 策略模式

CommonDiscountStrategy.cs

Core Design Patterns(13) Strategy 策略模式using System;
Core Design Patterns(13) Strategy 策略模式
using System.Collections.Generic;
Core Design Patterns(13) Strategy 策略模式
using System.Linq;
Core Design Patterns(13) Strategy 策略模式
using System.Text;
Core Design Patterns(13) Strategy 策略模式

GoldenDiscountStrategy.cs

Core Design Patterns(13) Strategy 策略模式using System;
Core Design Patterns(13) Strategy 策略模式
using System.Collections.Generic;
Core Design Patterns(13) Strategy 策略模式
using System.Linq;
Core Design Patterns(13) Strategy 策略模式
using System.Text;
Core Design Patterns(13) Strategy 策略模式

Book.cs

Core Design Patterns(13) Strategy 策略模式using System;
Core Design Patterns(13) Strategy 策略模式
using System.Collections.Generic;
Core Design Patterns(13) Strategy 策略模式
using System.Linq;
Core Design Patterns(13) Strategy 策略模式
using System.Text;
Core Design Patterns(13) Strategy 策略模式

Client

Core Design Patterns(13) Strategy 策略模式using System;
Core Design Patterns(13) Strategy 策略模式
using System.Collections.Generic;
Core Design Patterns(13) Strategy 策略模式
using System.Linq;
Core Design Patterns(13) Strategy 策略模式
using System.Text;
Core Design Patterns(13) Strategy 策略模式
using DesignPattern.Strategy.BLL;
Core Design Patterns(13) Strategy 策略模式

Output

Core Design Patterns(13) Strategy 策略模式

相关文章: