mysql安装 wxRuby Kotlin Netty docker安装 arraylist tcp upload pmp视频教程下载 excel太长的文字隐藏 iot系统 nodejs后端开发 python逻辑运算符 mysql 选择数据库 python类与对象 java编程基础 java多态 java中的多态 java连数据库 java开发教程 java接口的使用 java平台 java结束线程 java开发语言 网络电视软件下载 千元以下最好的手机 骁龙660和625 图解设计模式 笔记本外接显示器好吗 ps选择反向快捷键 cfqq网吧任务 视频相册制作软件 java字符串截取 坐标标注插件 cdr怎么画波浪线 qq悄悄话怎么知道对方是谁 摇骰子表情包 刷机精灵pc版 卧龙推广 微信问卷调查怎么做
当前位置: 首页 > 学习教程  > python

形状工厂 [Python3]

2021/2/7 11:13:06 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

形状工厂 [Python3] 题目描述 工厂模式是一种常见的设计模式。实现一个形状工厂 ShapeFactory 来创建不同的形状类。这里我们假设只有三角形,正方形和矩形三种形状。 样例 例1: 输入: sf new ShapeFactory(); shape sf.getShape(“Square”); shape.draw(); …

形状工厂 [Python3]

题目描述

工厂模式是一种常见的设计模式。实现一个形状工厂 ShapeFactory 来创建不同的形状类。这里我们假设只有三角形,正方形和矩形三种形状。

样例

例1:

输入:
sf = new ShapeFactory();
shape = sf.getShape(“Square”);
shape.draw();
输出:


   ---- 
  |    | 
  |    |  
   ----

例2:

输入:
sf = new ShapeFactory();
shape = sf.getShape(“Triangle”);
shape.draw();
输出:

   /\  
  /  \
 /____\

例3:

输入:
sf = new ShapeFactory();
shape = sf.getShape(“Rectangle”);
shape.draw();
输出:

 ----  
|    |  
 ----

我们不难看到,正方形(例1)是由上下各4个 “-”和左右各2个“|”组成的,而矩形的高仅由1个“|”组成。三角形的底由4个“_”连接而成,斜边则分别由3个“/”与“\”组成。

就此而言,我们最容易想到的方法就是用 if 判断句构成代码。不过根据样例所给出的,我们不难发现 shape 应当是我们需要定义的对象,并拥有一个 draw() 方法进行绘制。

代码示例

class Shape:
		def draw(self):
    		raise NotImplementedError('This method should have implemented.')

class Triangle(Shape):
		def draw(self):
    		print(
			"""  /\\
			 /  \\
			/____\\"""
				        )
class Rectangle(Shape):
		def draw(self):
    		print(
			"""  ----
			|    |
			 ----"""
					)
class Square(Shape):
		def draw(self):
    		print(
			""" ----
			|    |
			|    |
			----"""
					)
class ShapeFactory:
		# @param {string} shapeType a string
		# @return {Shape} Get object of type Shape
		def getShape(self, shapeType):
    		if shapeType == 'Triangle':
        			return Triangle()
    		elif shapeType == 'Square':
        			return Square()
    		elif shapeType == 'Rectangle':
        			return Rectangle()
		else:
			pass

在代码中我们容易看到:输入中首先实例化一个 ShapeFactory 对象,随后执行其 getShape() 方法并输入参数。在 getShape() 方法中,使用 if 条件句判断所输入的参数(即所需的形状),再根据不同的参数返回不同的对象类型到 shape (此时 shape 就是输入中所定义的对象名称),最后调用该对象的 draw() 方法,得出图形。

当然,我们为了避免一些不太聪明的用户输入垃圾数据,在 if 条件句最后一行要写 else 情况(即用户没有正确输入参数的情况),可以直接 pass (什么都不执行),当然也可以返回其他值,或是一句提醒(print(‘没事别瞎传参数’))。

感谢浏览 主页更多Python3题目讲解,关注不迷路哦!


本文链接: http://www.dtmao.cc/news_show_2000267.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?