2022年设计模式课程设计 .pdf
《2022年设计模式课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年设计模式课程设计 .pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、设计模式课程设计题目:画图 程 序学院:信息科学与技术学院专业:软件工程学号:20092384 姓名:陈志名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 1需求分析该系统是一个画图程序, 我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。1.1 设计模式要求至少在其中运用6 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。1.2 画图基本要求能实现基本图形的绘制功能1.3 画图高级要求实现图形的操作
2、(如选取、移动、放大、缩小、改变颜色、改变线形等)和持久化(利用文件或利用数据库) 。2.系统设计首先,画图程序可以实现绘制圆形、矩形和按钮,这里可以将圆形、矩形和按钮看作三个不同的类, 那么我们可以采用抽象工厂的方式来创建它们。对于画组合图,我们可以采用组合模式将二者结合起来。而对于图形颜色或者粗细的改变,我们可以使用外观模式。 然后,我们可以使用原型模式来实现对于最后一个图形的复制。 在系统中可以使用代理模式来实现显示图片。下面是对需要用到的设计模式进行的分析。2.1 使用设计模式2.1.1 桥梁模式桥梁模式 , 结构型模式一种 . 设计程序过程中 , 会经常使用到抽象类或者接口来完成抽象
3、的过程。继承或实现的类通过不同的实现方式来完成抽象类或接口的变化 , 也就是实现过程的变化 , 但可能会有这样的情况 , 抽象过程同样需要进行变化 , 也就是抽象类或者接口需要变化 , 这样就会造成原有的继承或实现关系复杂 , 关系混乱 . 桥梁模式利用将抽象层和实现层进行解耦 , 使两者不再像继承或实现这样的较强的关系 , 从而使抽象和实现层更加独立的完成变化的过程 . 使系统更加清晰。桥梁模式主要由抽象类、修正抽象类、实现类以及具体实现类组成 . 抽象类 , 制定接口 , 同时给出一个实现化的引用。修正抽象类 , 扩展抽象类 , 修正或改变抽象类中指定的接口。实现类 , 提供实现化角色的接
4、口 , 但不进行具体实现过程 , 该接口不一定给出与抽象类相同的接口 , 只是提供实现的方式。具体实现类 , 完成实现类中定义的实现接口的具体实现过程。具体代码如下:package BridgePattern; import java.awt.Color; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - import java.awt.Graphics; import java.util.Random; import cn.m
5、ing.Main.circle; public class Cpic extends Pic public Cpic(Graphics g) super(g); public void drawpic(Graphics g) g.setColor(Color.RED); circle c1 = new circle(); Random ran2 = new Random(); int a = ran2.nextInt(150)+10; int b = ran2.nextInt(350)+200; int c = ran2.nextInt(280)+140; c1.settings(a,b,c)
6、; g.fillOval(b-a/2,c-a/2,a,a); g.setColor(Color.BLUE); g.fillOval(50+b-a/2,c-a/2-50,a,a); g.setColor(Color.GREEN); g.fillOval(100+b-a/2,c-a/2,a,a); package BridgePattern; import java.awt.Graphics; public abstract class Pic public Graphics g; Pic(Graphics g) this.g = g; public abstract void drawpic(G
7、raphics g); package BridgePattern; import java.awt.Color; import java.awt.Graphics; import java.util.Random; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - import cn.ming.Main.circle; public class Rpic extends Pic public Rpic(Graphics g)
8、super(g); public void drawpic(Graphics g) g.setColor(Color.RED); circle c2 = new circle(); Random ran2 = new Random(); int a = ran2.nextInt(150)+10; int b = ran2.nextInt(350)+100; int c = ran2.nextInt(150)+100; c2.settings(a,b,c); g.fillOval(b-a/2,c-a/2,a,a); g.setColor(Color.BLUE); g.fillOval(b-3*a
9、/8,c-3*a/8,3*a/4,3*a/4); g.setColor(Color.WHITE); g.fillOval(b-a/4,c-a/4,a/2,a/2); g.setColor(Color.GREEN); g.fillOval(b-a/8,c-a/8,a/4,a/4); 运行结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
10、- - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 2.1.2 装饰模式JAVA23 种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。 它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点 ; (1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实对象的引用(reference )(3) 装饰对象接受所有来自客户端的请求。它把这些请求转
11、发给真实的对象。(4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时, 不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。具体代码如下:package DecoratorPattern; import java.awt.Graphics; import cn.ming.Main.triangles; public class DecoTr extends triangles public triangles t; private Graphics g; public DecoTr() t = new tr
12、iangles(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - public static void filltr(Graphics g,triangles t) if(t != null) t.filltr(g,t); package DecoratorPattern; import java.awt.Color; import java.awt.Graphics; import cn.ming.Main.Triang
13、le; public class DecoTr1 extends DecoTr public static void filltr(Graphics g,Triangle t) g.setColor(Color.GREEN); g.fillOval(t.x-25,t.y-25,50,50); package DecoratorPattern; import java.awt.Color; import java.awt.Graphics; import cn.ming.Main.Triangle; public class DecoTr2 extends DecoTr public stati
14、c void filltr(Graphics g,Triangle t) g.setColor(Color.RED); g.fillOval(t.x+t.w-25,t.y-25,50,50); 运行结果:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 2.1.3 策略模式策略模式,又叫算法簇模式, 就是定义了不同的算法族, 并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则是把一个类中经常改变或者将来可能改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年设计模式课程设计 2022 设计 模式 课程设计
限制150内