当前位置: 首页 > news >正文

全国电子网站建设小蜜蜂网站建设

全国电子网站建设,小蜜蜂网站建设,网站建设编辑工作总结,品牌建设与营销管理最新学习了刘伟老师的设计模式#xff1a;简单工厂模式#xff0c; 史上最全设计模式导学目录#xff08;完整版#xff09;_刘伟技术博客-CSDN博客 工厂三兄弟之简单工厂模式#xff08;一#xff09;_刘伟技术博客-CSDN博客工厂三兄弟之简单工厂模式#xff08;二简单工厂模式 史上最全设计模式导学目录完整版_刘伟技术博客-CSDN博客 工厂三兄弟之简单工厂模式一_刘伟技术博客-CSDN博客工厂三兄弟之简单工厂模式二_刘伟技术博客-CSDN博客工厂三兄弟之简单工厂模式三_刘伟技术博客-CSDN博客工厂三兄弟之简单工厂模式四_刘伟技术博客-CSDN博客 做一下后面的练习题 练习 使用简单工厂模式设计一个可以创建不同几何形状如圆形、方形和三角形等的绘图工具每个几何图形都具有绘制draw()和擦除erase()两个方法要求在绘制不支持的几何图形时提示一个UnSupportedShapeException。 先分析问题 首先是有图形工具可以创建不同形状工具里面有两个方法绘制daw()和擦除erase()。 首先定义一个抽象类Shape,并针对抽象类Shape定义一个工厂类ShapeFactory package com.pattern.simplefactory;public abstract class Shape {/*** 绘制方法*/abstract void draw();/**** 擦除方法*/protected void erase(){for (int i 0; i 10; i) {System.out.println();}} }定义具体的形状 package com.pattern.simplefactory; /*** 圆形*/ public class ShapeCircular extends Shape{Overridepublic void draw() {int r8;//圆形的半径for (int y 0; y 2 * r; y 2) {//y的步长为2,改变y的步长可以将圆形变成椭圆int x (int)Math.round(r - Math.sqrt(2 * r * y - y * y));int len 2 * (r - x);for (int i 0; i x; i) {System.out.print( );}System.out.print(*);for (int j 0; j len; j) {System.out.print(*);}System.out.println(*);}} }package com.pattern.simplefactory; /*** 方形*/ public class ShapeSquare extends Shape{Overridevoid draw() {int i 5;for (int j 0; j i; j) {for (int k 0; k i; k) {System.out.print( * );}System.out.println();}} }package com.pattern.simplefactory; /*** 三角形*/ public class ShapeTriangle extends Shape{Overridevoid draw() {int i 5;for (int j 0; j i; j) {int spea (i-j);for (int k 0; k spea; k) {System.out.print( );}for (int k 0; k j; k) {System.out.print(*);}for (int k 0; k j-1; k) {System.out.print(*);}System.out.println();}} }然后创建具体的工厂类ShapeFactory,其中如果有不支持的图形就报UnSupportedShapeException错误。: package com.pattern.simplefactory;import java.util.HashMap; import java.util.Map;/*** 图形工厂*/ public class ShapeFactory {private static String Circular Circular;private static String Square Square;private static String Triangle Triangle;public static Shape getShape(String shapeStr){Shape shape null;if(Circular.equals(shapeStr)){shape new ShapeCircular();}else if(Square.equals(shapeStr)){shape new ShapeSquare();}else if(Triangle.equals(shapeStr)){shape new ShapeTriangle();}else{throw new UnSupportedShapeException();}return shape;} }最后定义一个UnSupportedShapeException类 继承RuntimeException package com.pattern.simplefactory;public class UnSupportedShapeException extends RuntimeException{ }最后测试一下 package com.pattern.simplefactory;public class Client {public static void main(String[] args) {//打印方形Shape shape ShapeFactory.getShape(Square);shape.draw();//打印三角形Shape shape1 ShapeFactory.getShape(Triangle);shape1.draw();//打印圆形Shape shape2 ShapeFactory.getShape(Circular);shape2.draw();//擦除shape2.erase();} }最后运行结果 然后再思考一下在工厂里面如果多次调用同一种形状每次会new一个全新的Shape.并且每次创建的Shape本身也并没有什么差别。这里可以用享元模式的思路来做一下改善 这里给一个享元模式入口史上最全设计模式导学目录完整版_刘伟技术博客-CSDN博客 享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象而这些对象都很相似状态变化很小可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象因此它又称为轻量级模式它是一种对象结构型模式。 package com.pattern.simplefactory;import java.util.HashMap; import java.util.Map;/*** 图形工厂*/ public class ShapeFactory {private static String Circular Circular;private static String Square Square;private static String Triangle Triangle;private static MapString,Shape shapeMap new HashMap();public static Shape getShape(String shapeStr){Shape shape null;//享元模式if(shapeMap.containsKey(shapeStr)){shape shapeMap.get(shapeStr);return shape;}if(Circular.equals(shapeStr)){shape new ShapeCircular();}else if(Square.equals(shapeStr)){shape new ShapeSquare();}else if(Triangle.equals(shapeStr)){shape new ShapeTriangle();}else{throw new UnSupportedShapeException();}shapeMap.put(shapeStr, shape);return shape;} }
http://www.dnsts.com.cn/news/184184.html

相关文章:

  • 罗浮视窗网站建设Wordpress 缓存策略
  • pc网站 手机网站 微信公众平台搜索引擎的关键词优化
  • 深圳高端企业官方网站建设公司主页网站制作
  • 网站建设邮箱免费自助建站做网站怎么上传
  • 电子商务网站建设汉狮太原seo网站管理
  • 网站建设制作的标准有哪些iis6建设网站
  • 做外贸上什么网站申请注册公司需要多少钱
  • 网站建设开发软件有哪些青海餐饮网站建设公司
  • 网站后台传图片wordpress 人体时钟
  • 网站建设产品说明书网站开发排期表
  • 企业名录2022版熊掌号接合网站做seo
  • ip段访问网站代码商业空间展示设计
  • 关键字挖掘爱站网迪庆州建设局网站
  • 做暧小视频免费视频在线观看网站app拉新推广
  • 2013网站建设方案多梦主题建设的网站
  • 温州优化网站方法建设网站宣传
  • 智林东莞网站建设公司怎么看一个网站做得好不好
  • 山西自助建站费用低中际城市建设有限公司网站
  • 教学网站建设论文wordpress 菜单 页面跳转
  • 网站建设釒首先金手指十五推广最好的平台有哪些
  • 做网站最简单的如何自己建设网站
  • 网站外包建设 请示合肥专业网站制
  • 公司的网站建设计入什么科目工厂货源网
  • 网络网站建设网站备案 拍照
  • 企业网站 模版公司展厅
  • 唐山建设网站网站wordpress 存档页面
  • 有口碑的常州网站建设seo文章推广
  • 网上商城网站建设解决方案wordpress 通知中心
  • 福建微网站建设公司网上商城网站怎么做
  • 深圳 网站 设计大型公司网站制作