文档介绍:TAIYUAN UNIVERSITY OF SCIENCE AND TECHNOLOGY
计算机科学与技术学院
《软件设计模式与体系结构》
课程作业(一)
(2016/d kit ch en • dining room. Features throughout this family home- include an open fireplace, en.-suite master
}
else{
(n\uCoiTect fonnat of EmailAddi\H);
}
【实验结果】
【实验小结】
通过适配器,客户端可以调用同一接11,因而对客户端来说是透明的。这样做更简 单、更直接、更紧凑;复用了现存的类,解决了现存类和复用环境要求不一致的问题:将 目标类和适配者类解耦,通过引入一个适配器类重用现有的适配者类,而无需修改原有代 码;一个对彖适配器可以把多个不同的适配者类适配到同一个目标,也就是说,同一个适 配器可以把适配者类和它的子类都适配到目标接11。对于对象适配器来说,更换适配器的 实现过程比较复杂。
实验三
桥接模式
几何立体体积
【实验内容】
在例中的设计实验层次类部分中,添加Ellipsoid (椭球)类,并且实现针对
椭球体积的计算。
【添加代码】
1、添加椭球类:
public class Ellipsoid miplements GeoFonn{
private double aRadius;
private double bRadius;
private double cRadius;
public Ellipsoid (double aRadius, double bRadius, double cRadius){ =aRadius;
=bRadius;
=cRadius;
}
public double computed olumeO {
double volume = ** aRadius* bRadius* cRadnis; retimi volume;
}
}
2、添加GUI:
private JTextField txtEllipsoidRadius_a; private JTextField txtEllipsoidRadius_b; private JTextField txtEllipsoidRadius_c;
public static final Stimg ELLIPSOID = "Ellipsoid”;
(ELLIPSOID);
else if(ELLIPSOID)){
Strmg a_radius =();
Strmg b_radius =();
Strmg c_radius =(); double a = (a_radius); double b =(b_radius); double c = (c_radius);
fbrm = new Ellipsoid(a, b, c);
else if(ELLIPSOID))
displayNewGUI( getTypePanel(ELLIPSOID));
else if(ELLIPSOID)){
JLabel lblRadius_a = new JLabel(nIiiput Radius aH);
JLabel lblRadius_b = new JLabel(HIiiput Radius bH);
JLabel lblRadius_c = new JLabel(nIiiput Radius cn);
txtEllipsoidRadius_a = new JTextField(S); txtEllipsoidRadius_b = new JTextField(S); txtEllipsoidRadius_c = new JTextField(S);
GndBagLayout gridbag = new GndBagLayoutO ; (gndbag);
GndBagConsti'amts gbc = new GndBagConstraiiitsO; (lblRadius_a); (lblRadius_b); (lblRadius_c);
(txtEllipsoidRadius_a);
(txtEllipsoidRadius_b);
(txtEllipsoidRadius_c);
(lblMeasure);
(cmbMeasure);
=5;
=5;
=1;
=8;
•
=0;
=o;
(lblRadius_a, gbc);
=