int main(int argc, char *argv[]) { AbstractionImpl *impl = new ConcreteAbstractionImplA(); Abstraction *abs = new RefinedAbstraction(impl); abs->Operation(); return 0; }
int main(int argc, char* argv[]) { AbstractionImp* imp = new ConcreteAbstractionImpA(); Abstraction* abs = new RefinedAbstraction(imp); abs->Operation(); system("pause"); return 0; }
int main() { AbstractionImp *imp = new ConcreteAbstractionImpB; Abstraction *abs = new RefinedAbstraction(imp); abs->Operation(); system("pause"); return 0; }
void test_bridge() { AbstractionImp* impA = new ConcreteAbstractionImpA; Abstraction* act = new RefinedAbstraction(impA); act->Operation(); delete impA; delete act; }
int test_Bridge2() { AbstractionImp* imp = new ConcreteAbstractionImpA(); Abstraction* abs = new RefinedAbstraction(imp); abs->Operation(); /* result: ConcreteAbstractionImpA .... */ return 0; }
int main(int argc,char * argv[]) { AbstractionImp* imp = new ConcreteAbstractionImpA(); Abstraction* abs = new RefinedAbstraction(imp) ; abs->Operation(); AbstractionImp* imp2 = new ConcreteAbstractionImpB(); Abstraction* abs2 = new RefinedAbstraction(imp2) ; abs2->Operation(); return 0; }
///在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 ///将抽象部分与实现部分分离,使它们都可以独立的变化 ///桥接模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用关联关系(组合或者聚合关系)而不是继承关系,从而使两者可以相对独立地变化,这就是桥接模式的用意。 void BridgeTest() { AbstractionImp* imp = new ConcreteAbstractionImpA(); Abstraction* abs = new RefinedAbstraction(imp); abs->Operation(); }