可以分ؓ(f)四种Q大圆,圆Q大矩ŞQ小矩Ş
看代码:(x)
public interface Shape {
public abstract void DrawShape();
}
public class Circle implements Shape {
public Circle() {
// TODO Auto-generated constructor stub
}
public void DrawShape() {
// TODO Auto-generated method stub
System.out.println("我是?/span>");
}
}
public class Triangle implements Shape {
public Triangle() {
// TODO Auto-generated constructor stub
}
public void DrawShape() {
// TODO Auto-generated method stub
System.out.println("我是矩ŞQ?/span>");
}
}
public abstract class Type {
public abstract void draw(String str);
protected Shape GetShape(String type){
if(type.equals("circle")){
return new Circle();
}else if(type.equals("triangle")){
return new Triangle();
}else{
return Circle();
}
}
private Shape Circle() {
// TODO Auto-generated method stub
return new Circle();
}
}
public class Big extends Type {
private Shape shape;
public Big(String tr){
shape=GetShape(tr);
}
public void draw(String str) {
// TODO Auto-generated method stub
System.out.println(str);
System.out.println("?/span>");
shape.DrawShape();
}
}
public class Small extends Type {
private Shape shape;
public Small(String str) {
shape=GetShape(str);
}
public void draw(String tr){
System.out.println(tr);
System.out.println("?/span>");
shape.DrawShape();
}
}
可以试一下啊Q?br />
public class Test {
public static void main(String[] args) {
System.out.println("=============类?===============");
//smallcd时?/span>
Type type=new Small("triangle");
type.draw("triangle");
Type type2=new Small("circle");
type2.draw("circle");
System.out.println("=============大类?===============");
//Bigcd时?/span>
Type type3=new Big("circle");
type3.draw("circle");
Type type4=new Big("triangle");
type4.draw("triangle");
}
}
设计模式相当强?zhn)啊!能帮助大家学习(fn)一Ҏ(gu)人心得也很愉快了!我会(x)l箋吧所学A(ch)献出来的Q?br />

]]>