同时又具有最少的多余代码和数据的方案。事实上,描述参数对象要求的接口越简单,其他类实现该接口的机会就越大,其对象能够作为参数使用的类也越多。下面以一个简单的例子来说明这一点:staticpublicbooleanareOverlapping(Windowwindow1,Windowwindow2){……}这个方法用于检查两个窗口(假定是矩形窗口是)否重叠。如果这个方法只要求从参数获得两个窗口的矩形坐标,此时相应地简化这两个参数是一种更好的
·62·
电
脑
与
信
息
技
术
2010年6月
…}就可以将它改写成下面的形式:classPolygon{…publicintgetPerimeter(){returnpPolygon.computePerimeter(this);}publicbooleanisConvex(){returnpPolygon.isConvex(this);}publicbooleancontainsPoint(){returnpPolygon.containsPoint(this,p);}…}在这里,nPolygon应该是:classpPolygon{staticpublicintcomputePerimeter(Polygonpolygon){...}staticpublicbooleanisConvex(Polygonpolygon){...}staticpublicbooleancontainsPoint(Polygonpolygon,Pointp