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