java设计模式实验报告

java设计模式实验报告


2024年6月18日发(作者:)

设计模式实验报告

学 院: 学院

专 业: 班

姓 名:

学 号:

指导教师:

一. 实例

实例:简单工厂模式

使用简单工厂模式设计一个可以创建不同几何形状(圆形、方形和三角形等)的绘图工具,每个几何图形都

要有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示一个Unsupportedshapeexception.

要求真正做出来,不要使用n。

图:

geometryfctory

<>

graph

+draw(Graphics): void

+erase(Graphics) : void

renshow(String):static graph

rectangle

+draw(Graphic): void

+erase(Graphics) : void

triangle

+draw(Graphics): void

+erase(Graphics) : void

circle

+draw(Graphics): void

+erase(Graphics) : void

2.源代码

package simplefactory2;

import cs;

public interface graph { void draw(Graphics g); void erase(Graphics g); }

package simplefactory2;

import cs;

public class circle implements graph{

@Override

public void draw(Graphics g) { al(20, 60, 60, 60); }

@Override

public void erase(Graphics g) { ect(18, 55, 63, 68); }}

package simplefactory2;

import cs;

public class rectangle implements graph{

@Override

public void draw(Graphics g) {ct(160, 60, 60, 60);}

@Override

public void erase(Graphics g) {ect(159, 58, 66, 66);}}

package simplefactory2;

import cs;

public class triangle implements graph{

@Override

public void draw(Graphics g) {

int[]xPoints={80,120,150}; int[]yPoints={70,120,70}; int nPoints=3;

lygon(xPoints, yPoints, nPoints); }

@Override

public void erase(Graphics g) { ect(81, 70, 70, 60); }}

package simplefactory2;

public class geometryfctory {

static graph renshow(String type) throws Exception{

if("circle".equals(type)){ return new circle();}

else if("triangle".equals(type)){ return new triangle();}

else if("rectangle".equals(type)){ return new rectangle();}

else{throw new Exception("Unsupportedshapeexception");}}}

package simplefactory2;

import ;


发布者:admin,转转请注明出处:http://www.yc00.com/news/1718696040a2751905.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信