黑马程序员技术交流社区

标题: 求指教:关于java中的桥梁模式 [打印本页]

作者: 王小丑    时间: 2013-2-23 18:37
标题: 求指教:关于java中的桥梁模式
大家都知道java中桥梁模式的用以是将问题的抽象和现实分离开来实现,通过用聚合代替继承来解决子类爆炸性增长的问题,比如
我们有一个画图程序有2个图形(Circle Rectangle)和2种画图方法(Drawing1 Drawing2)图形可能会使用Dawing1来画图,也可能使用Dawing2来画图,在这个画图程序中有两个可变因素,一是图形的种类有可能会增加新的图形,另一个是画图方法有可能会有Drawing3出现,当系统有两个可变因素是我们就应该考虑到桥梁模式,至少他应该在你脑海里闪过。在面型对象设计中有两个规则需要满足:
1.找出变化并封装之
2.优先使用聚合而并不是继承
这两条将在桥梁模式中得到完美体现,在上例中图形是一个变化我们可以抽象出一个形状借口和一些形状类。
Java代码:
interface Shope{
void doDraw();
}
class Circle implements Shape{};
class Rectangle implements Shape{}
画图方法也可以抽象出一个Drawing借口和各种方法
Java代码:
interface Drawing{
void draw();
}
class Drawing1 implements Drawing{}
class Drawing2 implements Drawing{}
但是现在我想知道的是在问题域中图形是不是可以使用画图方法?可不可以在Shape中使用Drawing?
还有我们如何通过在具体的图形中通过构造函数传入具体的画图方法来实现?? 求高手指教!多谢
作者: 王小丑    时间: 2013-2-23 18:38
补充:仔细体会了一下桥梁模式,老感觉凡是“调用和实现”之间的问题都可以用桥梁模式解决,不知道是不是。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2