http://www.verejava.com/?id=16999016430959
package com.brige.theory;
public class TestBrige
{
public static void main(String[] args)
{
Person man=new Man("男人");
Person lady=new Lady("女人");
Clothing jacket=new Jacket("夹克");
Clothing trouser=new Trouser("裤子");
man.setCloth(jacket);
man.dress();
man.setCloth(trouser);
man.dress();
lady.setCloth(jacket);
lady.dress();
lady.setCloth(trouser);
lady.dress();
}
}
package com.brige.theory;
public abstract class Person
{
protected String name;
protected Clothing cloth;
public Person(String name)
{
super();
this.name = name;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Clothing getCloth()
{
return cloth;
}
public void setCloth(Clothing cloth)
{
this.cloth = cloth;
}
public abstract void dress();
}
package com.brige.theory;
public class Man extends Person
{
public Man(String name)
{
super(name);
}
@Override
public void dress()
{
System.out.println(name+" 穿 "+cloth.getName());
}
}
package com.brige.theory;
public class Lady extends Person
{
public Lady(String name)
{
super(name);
}
@Override
public void dress()
{
System.out.println(name+" 穿 "+cloth.getName());
}
}
package com.brige.theory;
public abstract class Clothing
{
protected String name;
protected Person person;
public Clothing(String name)
{
super();
this.name = name;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Person getPerson()
{
return person;
}
public void setPerson(Person person)
{
this.person = person;
}
}
package com.brige.theory;
public class Jacket extends Clothing
{
public Jacket(String name)
{
super(name);
}
}
package com.brige.theory;
public class Trouser extends Clothing
{
public Trouser(String name)
{
super(name);
}
}

本文通过具体的Java代码实现,展示了桥接模式的应用场景与实现方式。桥接模式是一种结构型设计模式,它将抽象与其实现分离,使两者可以独立变化。文中定义了Person和Clothing两个抽象层级,并通过具体的子类如Man、Lady、Jacket和Trouser来展示如何根据不同的人物和衣物进行组合。
2062

被折叠的 条评论
为什么被折叠?



