Compare commits
No commits in common. '7cce2e2d34db77f892c23aca4b58e2e813decdcf' and 'd9167b653bc59f985f1add7aff6a77c08027dd94' have entirely different histories.
7cce2e2d34
...
d9167b653b
@ -1,84 +0,0 @@ |
||||
namespace DesignPattern.Patterns |
||||
{ |
||||
interface ICommand |
||||
{ |
||||
void Execute(); |
||||
} |
||||
|
||||
class User |
||||
{ |
||||
private List<ICommand> _commands = new List<ICommand>(); |
||||
|
||||
public void AddCommand(ICommand command) |
||||
{ |
||||
_commands.Add(command); |
||||
} |
||||
|
||||
public void AddCommand(StockBroker broker, string symbol, TxType txType, int qty) |
||||
{ |
||||
ICommand cmd = new StockCommand(broker, symbol, txType, qty); |
||||
_commands.Add(cmd); |
||||
} |
||||
|
||||
public void ExecuteAll() |
||||
{ |
||||
foreach (var cmd in _commands) |
||||
{ |
||||
cmd.Execute(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
class StockCommand : ICommand |
||||
{ |
||||
private StockBroker _broker; |
||||
private string _symbol; |
||||
private TxType _txType; |
||||
private int _qty; |
||||
|
||||
public StockCommand(StockBroker broker, string symbol, TxType txType, int qty) |
||||
{ |
||||
_broker = broker; |
||||
_symbol = symbol; |
||||
_txType = txType; |
||||
_qty = qty; |
||||
} |
||||
|
||||
public void Execute() |
||||
{ |
||||
_broker.Process(_symbol, _txType, _qty); |
||||
} |
||||
} |
||||
|
||||
enum TxType |
||||
{ |
||||
Buy, |
||||
Sell |
||||
} |
||||
|
||||
class StockBroker |
||||
{ |
||||
public void Process(string stockSymbol, TxType txType, int qty) |
||||
{ |
||||
Console.WriteLine($"{txType}, {stockSymbol}, {qty}"); |
||||
} |
||||
} |
||||
|
||||
class CommandClient |
||||
{ |
||||
public static void Work() |
||||
{ |
||||
var broker = new StockBroker(); |
||||
|
||||
User user = new User(); |
||||
|
||||
ICommand cmd = new StockCommand(broker, "MSFT", TxType.Buy, 150); |
||||
user.AddCommand(cmd); |
||||
user.AddCommand(broker, "AMZN", TxType.Sell, 2000); |
||||
user.AddCommand(broker, "BRK.B", TxType.Buy, 5000); |
||||
user.AddCommand(broker, "APPL", TxType.Sell, 1000); |
||||
|
||||
user.ExecuteAll(); |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue