建造者模式

来源:互联网 发布:网络之重临巅峰txt下载 编辑:程序博客网 时间:2024/06/13 18:56

某游戏软件中人物角色包括多种类型,不同类型的人物角色,其性别、脸型、服装、发型等外部特征有所差异,使用建造者模式创建人物角色对象,要求绘制并编程实现。

UML图:

这里写图片描述

(1)SimplePhone类

public class SimplePhone extends CellPhone {    @Override    public void receiveCall() {        System.out.println("声音提示!");        }}

(2)CellPhone类

public abstract class CellPhone {    public abstract void receiveCall();}

(3)PhoneDecorator类

public class PhoneDecorator extends CellPhone {    private CellPhone phone = null;     public PhoneDecorator(CellPhone phone)    {        if(phone != null)        {            this.phone = phone;        }        else        {            this.phone =new SimplePhone();        }    }    @Override    public void receiveCall()    {        // TODO Auto-generated method stub        phone.receiveCall();    }}

(4)JarPhone类

public class JarPhone extends PhoneDecorator {    public JarPhone(CellPhone phone) {        super(phone);        // TODO Auto-generated constructor stub    }    public void receiveCall(){        super.receiveCall();        System.out.println("震动提示");    }}

(5)ComplexPhone类

public class ComplexPhone extends PhoneDecorator{    public ComplexPhone(CellPhone phone) {        super(phone);        // TODO Auto-generated constructor stub    }    public void receiveCall(){        super.receiveCall();        System.out.println("灯光闪烁提示");    }}

(6)Client类

public class Client {    public static void main(String a[]) {        CellPhone p1 = new SimplePhone();        p1.receiveCall();        System.out.println(" ");        CellPhone p2 = new JarPhone(p1);        p2.receiveCall();        System.out.println(" ");        CellPhone p3 = new ComplexPhone(p2);        p3.receiveCall();    }}

运行结果:

这里写图片描述

原创粉丝点击