【发布时间】:2010-12-20 19:38:57
【问题描述】:
我在wikipedia 的这个桥接模式示例上花了一些时间,但是,我仍然不明白这个桥接模式试图解释什么。
接口绘图API { 公共无效drawCircle(双x,双y,双半径); } /** "ConcreteImplementor" 1/2 */ 类 DrawingAPI1 实现 DrawingAPI { 公共无效drawCircle(双x,双y,双半径){ System.out.printf("API1.circle at %f:%f radius %f\n", x, y, radius); } } /** "ConcreteImplementor" 2/2 */ 类 DrawingAPI2 实现 DrawingAPI { 公共无效drawCircle(双x,双y,双半径){ System.out.printf("API2.circle at %f:%f radius %f\n", x, y, radius); } } /** “抽象” */ 界面形状{ 公共无效绘制(); // 低级 public void resizeByPercentage(double pct); // 高水平 } /** “精炼抽象” */ 类 CircleShape 实现形状 { 私人双 x,y,半径; 私有绘图API绘图API; public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI) { 这个.x = x;这个.y = y; this.radius = 半径; this.drawingAPI = 绘图API; } // 低级,即特定于实现 公共无效绘制(){ 绘图API.drawCircle(x, y, 半径); } // 高级别的,即抽象特定的 公共无效resizeByPercentage(双百分比){ 半径 *= pct; } } /** “客户” */ 类主{ 公共静态无效主要(字符串[]参数){ 形状 [] 形状 = 新形状 [2]; 形状[0] = new CircleShape(1, 2, 3, new DrawingAPI1()); 形状[1] = new CircleShape(5, 7, 11, new DrawingAPI2()); 对于(形状形状:形状){ shape.resizeByPercentage(2.5); 形状.draw(); } } }子类 CircleShape 构造函数接受 4 个参数,在它的 draw() 方法中,前 3 个参数被传递给第四个参数,它可以是来自 DrawingAPI 的任何子类。 那么这是否意味着使用桥接模式可以增加灵活性呢? 这个例子还能告诉我们更多信息吗?
谢谢!!!!
【问题讨论】:
-
您可以在此处查看桥接设计模式示例programmerzdojo.com/java-tutorials/…
标签: java design-patterns bridge