public abstract class Computer { public abstract string MainBoard(); public abstract string Cpu(); public abstract string PhenoType(); public abstract string Memory(); public abstract string HardDisk(); public abstract string Display(); }
public class lenovo:Computer { public override string MainBoard() { return "华硕880G系列"; } public override string Cpu() { return "闪龙双核180(2.4GHz)"; } public override string PhenoType() { return "集成高性能显卡"; } public override string Memory() { return "1G DDRIII"; } public override string HardDisk() { return "500G"; } public override string Display() { return "19寸宽屏液晶显示器"; } }
然后再建HP.cs:
public class HP:Computer { public override string MainBoard() { return "ATI RS482"; } public override string Cpu() { return "速龙 64位 x2 双核5000+"; } public override string PhenoType() { return "NV G310 512M"; } public override string Memory() { return "2G DDR2 667 "; } public override string HardDisk() { return "3200G"; } public override string Display() { return "19寸宽屏液晶显示器"; } }
然后再新建个买电脑的类BuyComputer.cs:
public class BuyComputer { private Computer _computer; public BuyComputer(Computer computer) { _computer = computer; } public string ShowComputerConfigure() { StringBuilder strCom = new StringBuilder(); strCom.AppendLine("你的电脑配置如下:"); strCom.AppendLine("主板是:" + _computer.MainBoard()); strCom.AppendLine("处理器是:" + _computer.Cpu()); strCom.AppendLine("显卡是:" + _computer.PhenoType()); strCom.AppendLine("内存是:" + _computer.Memory()); strCom.AppendLine("硬盘是:" + _computer.HardDisk()); strCom.AppendLine("显示器是:" + _computer.Display()); strCom.AppendLine("己组装完成"); return strCom.ToString(); } }
然后调用它:
public partial class Run : Form { public Run() { InitializeComponent(); } private void btnRun_Click(object sender, EventArgs e) { BuyComputer myBuy = new BuyComputer(new lenovo()); rtbResult.AppendText(myBuy.ShowComputerConfigure()); myBuy = new BuyComputer(new HP()); rtbResult.AppendText(myBuy.ShowComputerConfigure()); } }
运行结果如下:
你的电脑配置如下:
主板是:华硕880G系列
处理器是:闪龙双核180(2.4GHz)
显卡是:集成高性能显卡
内存是:1G DDRIII
硬盘是:500G
显示器是:19寸宽屏液晶显示器
己组装完成
你的电脑配置如下:
主板是:ATI RS482
处理器是:速龙 64位 x2 双核5000+
显卡是:NV G310 512M
内存是:2G DDR2 667
硬盘是:3200G
显示器是:19寸宽屏液晶显示器
己组装完成
总结:策略模式和抽象工厂模式很象,区别在于策略模式多了一个统一的接口类,这里是BuyComputer.
欢迎拍砖.