您的位置:首页 > 编程语言 > Java开发

java bridge设计模式

2012-04-30 10:57 316 查看
简单的设计图:



代码的实现:

Java代码







package bridge; 
 
public abstract
class Clothing { 
    /**
     * 抽象方法
     * @param person
     */ 
    public abstract
void dressCloth(Person person); 



package bridge;

public abstract class Clothing {
/**
* 抽象方法
* @param person
*/
public abstract void dressCloth(Person person);
}


Java代码







package bridge; 
 
public class Jacket
extends Clothing { 
 
    @Override 
    public void dressCloth(Person person) { 

        // TODO Auto-generated method stub 

        System.out.println(person.getType() + "穿上马甲!"); 

    } 
 


package bridge;

public class Jacket extends Clothing {

@Override
public void dressCloth(Person person) {
// TODO Auto-generated method stub
System.out.println(person.getType() + "穿上马甲!");
}

}


Java代码







package bridge; 
 
public class Trouser
extends Clothing { 
 
    @Override 
    public void dressCloth(Person person) { 

        // TODO Auto-generated method stub 

        System.out.println(person.getType() + "穿上裤子!"); 

    } 
 


package bridge;

public class Trouser extends Clothing {

@Override
public void dressCloth(Person person) {
// TODO Auto-generated method stub
System.out.println(person.getType() + "穿上裤子!");
}

}


Java代码







package bridge; 
 
public abstract
class Person { 
    private String type; 
    private Clothing clothing; 

 
    public String getType() { 

        return type; 
    } 
 
    public void setType(String type) { 

        this.type = type; 
    } 
 
    public Clothing getClothing() { 

        return clothing; 
    } 
 
    public void setClothing(Clothing clothing) { 

        this.clothing = clothing; 

    } 
     
    //抽象方法 
    public abstract
void dress(); 


package bridge;

public abstract class Person {
private String type;
private Clothing clothing;

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

public Clothing getClothing() {
return clothing;
}

public void setClothing(Clothing clothing) {
this.clothing = clothing;
}

//抽象方法
public abstract void dress();
}


Java代码







package bridge; 
 
public class Man
extends Person { 
 
    public Man() 
    { 
        setType("男人"); 
    } 
     
    @Override 
    public void dress() { 

        getClothing().dressCloth(this); 

    } 
 


package bridge;

public class Man extends Person {

public Man()
{
setType("男人");
}

@Override
public void dress() {
getClothing().dressCloth(this);
}

}


Java代码







package bridge; 
 
public class Woman
extends Person { 
 
    public Woman() 
    { 
        setType("女人"); 
    } 
     
    @Override 
    public void dress() { 

        getClothing().dressCloth(this); 

    } 
 


package bridge;

public class Woman extends Person {

public Woman()
{
setType("女人");
}

@Override
public void dress() {
getClothing().dressCloth(this);
}

}


Java代码







package bridge; 
 
public class ClientTest { 

 
    /**
     * @param args
     */ 
    public static
void main(String[] args) { 
        //两类人 
        Person man = new Man();         

        Person lady = new Woman(); 

        //两种衣服的类 
        Clothing jacket = new Jacket();         

        Clothing trouser = new Trouser(); 

 
        jacket.dressCloth(man); 
        trouser.dressCloth(man); 
        jacket.dressCloth(lady); 
        trouser.dressCloth(lady); 
    } 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息