您的位置:首页 > 其它

结构模式之桥梁模式

2014-09-28 11:49 274 查看
桥梁模式的用意:一个行为有2个因素引起他变化比如电脑,有台式电脑,笔记本电脑等等,然后笔记本电脑又由不同的厂家生产的。这边引起电脑变化的因素有2个 一个是电脑的类型 另一个是电脑的生产厂家。

package com.djk.design.struct.brige;

public interface Computer
{
void desc();
}


package com.djk.design.struct.brige;

public interface Company
{
void companyName();
}


package com.djk.design.struct.brige;

public abstract class DeskComputer  implements Computer
{
private Company company;

public DeskComputer(Company company) {
super();
this.company = company;
}

@Override
public void desc()
{
if (company != null)
{
company.companyName();
}
System.out.println("台式电脑");

method();
}

abstract void method();
}
package com.djk.design.struct.brige;

public class DeskComputerImpl extends DeskComputer
{

public DeskComputerImpl(Company company) {
super(company);
}

@Override
void method() {

}

}
package com.djk.design.struct.brige;

public abstract class PersonComputer implements Computer
{
private Company company;

public PersonComputer(Company company) {
super();
this.company = company;
}

@Override
public void desc()
{
if (company != null)
{
company.companyName();
}
System.out.println("个人电脑");

method();
}

abstract void method();
}
package com.djk.design.struct.brige;

public class PersonComputerImpl extends PersonComputer
{

public PersonComputerImpl(Company company)
{
super(company);
}

@Override
void method()
{

}

}


package com.djk.design.struct.brige;

public class AppleCompany implements Company
{

@Override
public void companyName()
{
System.out.println("苹果公司");
}

}
package com.djk.design.struct.brige;

public class HpCompany implements Company
{

@Override
public void companyName() {
System.out.println("惠普公司");
}

}


package com.djk.design.struct.brige;

public class Client {
public static void main(String[] args)
{
Computer computer1 = new PersonComputerImpl(new HpCompany());
computer1.desc();

Computer computer2 = new DeskComputerImpl(new AppleCompany());
computer2.desc();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: