软件设计

您所在的位置:网站首页 室内装修模拟手机软件 软件设计

软件设计

2024-07-11 20:40| 来源: 网络整理| 查看: 265

手机功能的升级用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。

 

类图

 

 

java

package rjsj.no11; public class Client { public static void main(String[] args) { CellPhone phone1 = new SimplePhone(); CellPhone phone2 = new JarPhone(phone1); CellPhone phone3 = new ComplexPhone(phone2); phone1.receiveCall(); System.out.println("********************************************************************************"); phone2.receiveCall(); System.out.println("********************************************************************************"); phone3.receiveCall(); } } package rjsj.no11; public class ComplexPhone extends PhoneDecorator{ public ComplexPhone(CellPhone cellPhone) { super(cellPhone); } @Override public void receiveCall() { super.receiveCall(); System.out.println("闪光灯闪烁"); } } package rjsj.no11; public class JarPhone extends PhoneDecorator{ public JarPhone(CellPhone cellPhone) { super(cellPhone); } @Override public void receiveCall() { super.receiveCall(); System.out.println("发出震动"); } } package rjsj.no11; public class PhoneDecorator extends CellPhone{ private CellPhone cellPhone = null; public PhoneDecorator(CellPhone cellPhone){ if (cellPhone != null){ this.cellPhone = cellPhone; } else { this.cellPhone = new SimplePhone(); } } @Override public void receiveCall() { cellPhone.receiveCall(); } } package rjsj.no11; public class SimplePhone extends CellPhone{ @Override public void receiveCall() { System.out.println("发出声音"); } } package rjsj.no11; abstract class CellPhone { public abstract void receiveCall(); }

 

C++

#include using namespace std; class Phone{ public: virtual void receiveCall(){}; }; class PhoneDecorator:public Phone { protected: Phone *phone; public: PhoneDecorator(Phone *p){ phone=p; } virtual void receiveCall(){ phone->receiveCall(); } }; class SimplePhone:public Phone{ public: virtual void receiveCall(){ cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3