學習筆記:設計模式之抽象工廠(C#)
阿新 • • 發佈:2017-11-17
sta 實體 mys actor div ted rac int c#
1.創建抽象工廠類
public abstract class AbstractFactory { public abstract Connect CreatConnet(); public abstract Select CreatSelect(); }
2.創建兩個抽象類
public abstract class Connect { public abstract void Print(); } public abstract class Select { public abstract void Print(); }
3.創建兩個實體類
public class SqlConnect : Connect { public override void Print() { //throw new NotImplementedException(); Console.Write("Sql Connect"); } } public class SqlSelect : Select { public override void Print() { Console.Write("Sql Select"); } } public class MysqlConnect : Connect { public override void Print() { Console.Write("MySql Connect"); } } public class MysqlSelect : Select { public override void Print() { Console.WriteLine("MySql Select"); } }
4.創建實體工廠類
public class SqlFactory : AbstractFactory { public override Connect CreatConnet() { return new SqlConnect(); } public override Select CreatSelect() { return new SqlSelect(); } } public class MySqlFactory : AbstractFactory { public override Connect CreatConnet() { return new MysqlConnect(); } public override Select CreatSelect() { return new MysqlSelect(); } }
5.客戶端調用
static void Main(string[] args) { AbstractFactory sqlFactory = new SqlFactory(); AbstractFactory mysqlFactory = new MySqlFactory(); Connect sqlConnect = sqlFactory.CreatConnet(); Connect mysqlConnect = mysqlFactory.CreatConnet(); sqlConnect.Print(); mysqlConnect.Print(); Select sqlSelect = sqlFactory.CreatSelect(); Select mysqlSelect = mysqlFactory.CreatSelect(); sqlSelect.Print(); mysqlSelect.Print(); Console.Read(); }
學習筆記:設計模式之抽象工廠(C#)