1.对象组合
namespace BridgeConnectionPattern
{
/*桥接模式:一句合成/聚合原则,优先使用类之间的不同组合,来实现各个类要
* 表现的功能,而不是使用继承。比如说:继承会延续父类的功能,然而,并不是
* 所有的子类都需要这样的功能,但是抽象出的东西在父类,导致子类又必须要
* 实现它,这样,父类就越来越庞大,子类又多了很多不必要的东西。因此,桥
* 接模式更强调类之间的组合从而实现解耦
*
* 对比组合模式,它更强调的是部分与整体间的组合,桥接模式强调的是平行级别
* 上不同类的组合
*/
abstract class OperateDB
{
public abstract void InsertDB();
}
class OperateSQL : OperateDB
{
public override void InsertDB()
{
Console.WriteLine("插入到MSSQL数据库");
}
}
class OperateOracle : OperateDB
{
public override void InsertDB()
{
Console.WriteLine("插入到Oracle数据库");
}
}
abstract class DBType
{
protected OperateDB operateDB;
public void SetOperateDB(OperateDB operateDBObj)
{
operateDB = operateDBObj;
}
public abstract void InsertDB();
}
class MSSQL : DBType
{
public override void InsertDB()
{
operateDB.InsertDB();
}
}
class Oracle : DBType
{
public override void InsertDB()
{
operateDB.InsertDB();
}
}
}
2.调用
static void Main(string[] args)
{
DBType db = new MSSQL();
db.SetOperateDB(new OperateSQL());
db.InsertDB();
Console.ReadKey();
}