2024年1月23日发(作者:)
外观模式
在电脑主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check()),CPU的运行(run()),硬盘(HardDisk)的读取(read()),操作系统(OS)的载入(load())等,如果某一过程发生错误则电脑启动失败。使用外观模式模拟该过程,绘制类图并编程实现。
MainFrame----memorycpudiskos: Memory: CPU: HardDisk: OS+on (): void+off (): void0..10..10..10..*HardDisk+read (): void+off (): void0..10..*Memory+check (): void+off (): voidCPU0..*0..*OS+load (): void+off (): void+run (): void+off (): void
package FacadePattern;
class Mainframe {
private Memory memory;
private CPU cpu;
private HardDisk disk;
private OS os;
public Mainframe()
{
}
public void on()
{
}
Memory+check (): void+off (): void---- memory=new Memory() ;
cpu=new CPU() ;
disk=new HardDisk() ;
os=new OS() ;
MainFramememorycpudiskos: Memory: CPU: HardDisk: OS ();
();
();
();
0..*CPU+on (): void+off (): void0..10..10..10..*HardDisk+read (): void+off (): void0..10..*0..*OS+load (): void+off (): void+run (): void+off (): void
}
public void off()
{
();
();
();
();
}
class Memory
{
}
class CPU
{
}
class HardDisk
{
public void read()
{
}
public void off()
n("HardDisk reading!");
public void run()
{
}
public void off()
{
}
n("CPU off!");
n("CPU running!");
public void check()
{
n( "Memory checking!");
}
public void off()
{
n("Memory off!");
}
}
{
}
n("HardDisk off!");
class OS
{
}
public class ComputerFacadeClient
{
}
public static void main(String args[])
{
}
Mainframe mainframe=new Mainframe();
();
n("-----------------------");
();
public void load()
{
}
public void off()
{
}
Memory+check (): void+off (): n("OS loading!");
----MainFramememorycpudiskos: Memory: CPU: HardDisk: OS+on (): void+off (): void0..10..10..10..*HardDisk+read (): void+off (): ("OS off!");
0..*CPU0..*0..*OS+load (): void+off (): void+run (): void+off (): void
运行结果:
代理模式
应用软件所提供的桌面快捷方式是快速启动应用程序的代理,桌面快捷方式一般使用一张小图片来表示(Picture),通过调用快捷方式的run()方法将调用应用软件(Application)的run()方法。使用代理模式模拟该过程,绘制类图并编程实现。
Software+run (): voidProxyPicture
-app: Application
0..10..*Application+<
package ProxyPattern;
interface Software
{
}
class Application implements Software
{
}
class Picture implements Software
{
}
public class FastwayProxyClient
{
public static void main(String a[])
{
}
Software proxy=new Picture();
();
private Application app=new Application();
public void run(){
}
();
public void run()
{
}
n("Application is running!");;
void run();
}
运行结果:


发布评论