电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

设计模式课程设计

12页
  • 卖家[上传人]:人***
  • 文档编号:477336121
  • 上传时间:2024-01-20
  • 文档格式:DOC
  • 文档大小:546.51KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、设计模式课程设计题 目: 画 图 程 序 学 院: 信息科学与技术学院 专 业: 软件工程 学 号: 20092384 姓 名: 陈 志 1需求分析该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。1.1 设计模式要求至少在其中运用 6 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。1.2 画图基本要求能实现基本图形的绘制功能1.3 画图高级要求实现图形的操作(如选取、移动、放大、缩小、改变颜色、改变线形等)和持久化(利用文件或利用数据库)。2.系统设计首先,画图程序可以实现绘制圆形、矩形和按钮,这里可以将圆形、矩形和按钮看作三个不同的类,那么我们可以采用抽象工厂的方式来创建它们。对于画组合图,我们可以采用组合模式将二者结合起来。而对于图形颜色或者粗细的改变,我们可以使用外观模式。然后,我们可以使用原型模式来实现对于最后一个图形的复制。在系统中可以使用代理模式来实现显示图片。下面是对需要用到的设计模式进行的分析。2.1 使用设计模式 桥梁模式桥梁模式 , 结构型模式一种 .设计程序过程中 , 会经常使用到抽象类或者接口来完成抽象的过程

      2、 。继承或实现的类通过不同的实现方式来完成抽象类或接口的变化 , 也就是实现过程的变化 , 但可能会有这样的情况 , 抽象过程同样需要进行变化 , 也就是抽象类或者接口需要变化 , 这样就会造成原有的继承或实现关系复杂 , 关系混乱 .桥梁模式利用将抽象层和实现层进行解耦 , 使两者不再像继承或实现这样的较强的关系 , 从而使抽象和实现层更加独立的完成变化的过程 . 使系统更加清晰 。桥梁模式主要由抽象类、修正抽象类、实现类以及具体实现类组成 .抽象类 , 制定接口 , 同时给出一个实现化的引用 。修正抽象类 , 扩展抽象类 , 修正或改变抽象类中指定的接口 。实现类 , 提供实现化角色的接口 , 但不进行具体实现过程 , 该接口不一定给出与抽象类相同的接口 , 只是提供实现的方式 。具体实现类 , 完成实现类中定义的实现接口的具体实现过程。具体代码如下:package BridgePattern;import java.awt.Color;import java.awt.Graphics;import java.util.Random;import cn.ming.Main.circ

      3、le;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);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 publ

      4、ic Graphics g; Pic(Graphics g) this.g = g; public abstract void drawpic(Graphics g); package BridgePattern;import java.awt.Color;import java.awt.Graphics;import java.util.Random;import cn.ming.Main.circle;public class Rpic extends Pic public Rpic(Graphics g) 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

      5、,c-a/2,a,a);g.setColor(Color.BLUE);g.fillOval(b-3*a/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);运行结果: 装饰模式JAVA23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。装饰模式的特点;(1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实对象的引用(reference)(3) 装饰对象接受所有来自客户端的请求。它把这些请求转发给真实的对象。(4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设

      6、计中,通常是通过继承来实现对给定类的功能扩展。具体代码如下: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 triangles(); 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.Triangle;public class DecoTr1 extends DecoTr public static void filltr(Graphics g,Triangle t)g.setColor(Col

      7、or.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 static void filltr(Graphics g,Triangle t)g.setColor(Color.RED);g.fillOval(t.x+t.w-25,t.y-25,50,50); 运行结果:2.1.3策略模式策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。设计原则是把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口(c+z中可以用虚类),然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。下面是一个例子。策略模式属于对象行为型模式,主要针对一组算法,将每一个算法封装到具有共同接口的独立的

      8、类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响 到客户端的情况下发生变化。通常,策略模式适用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用。具体代码实现如下:package StrategyPattern;import java.awt.Graphics;import java.awt.Point;public class policystrategy s;public policy(strategy s)this.s = s;public void choosepolicy(Graphics g,Point p1,Point p2,Point p3)s.drawing(g,p1,p2,p3); package StrategyPattern;import java.awt.Graphics;import java.awt.Point;public abstract class strategypublic abstract void drawing(Graphics g,Point p1,Point p2,Point p3);package StrategyPattern;import java.awt.Color;import java.awt.Graphics;import java.awt.Point;public class strategyA extends strategypublic Point p1,p2,p3; public double area,p; public double distenceOfPoints(Point p1, Point p2) return Math.sqrt(p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y)

      《设计模式课程设计》由会员人***分享,可在线阅读,更多相关《设计模式课程设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.