模型(Model)类
来源:互联网 发布:中国云计算行业分析 编辑:程序博客网 时间:2024/05/22 06:39
在这个例子里,描述算法的类就叫模型类。而这个例子实现的功能比较简单,主要实现用户点击窗口之后,在窗口上画线,并把所有画的线记录起来,以便窗口刷新时还可以显示出来。要实现这个目标,需要使用数据结构来保存直线的起始和终点位置。而负责这方面工作的,就是模型类。模型类设计上,使用了Python里内置类型列表来保存所有坐标点属性。这个例子的代码如下:
#开发人员:蔡军生(QQ:9073204) 深圳 2014-9-6#模型类class Model: def __init__(self): self.ptList = [] self.maxList = 2000 def AddPoint(self, x, y, isStart): if len(self.ptList) > self.maxList: self.ptList.remove(0) #以元组的方式保存到列表 self.ptList.append((x,y,isStart)) def GetPoint(self): return self.ptList
在Model类里,在构造函数__init__里定义了一个列表self.ptList ,以限定了最多保存多少个数据点self.maxList ,有了这两个数据结构,就可以保存直线的起点和终点数据,以及限制列表的大小,否则列表会无限增大,导致系统没有内存可用。定义了函数AddPoint来增加直线的起始点和结束点,在这里通过元组的形式(x,y,isStart)来记录一个坐标点的属性,其中x和y分别X轴和Y轴的坐标点,isStart是表示该点是否直线的起点,否则就是终点。最后定义了函数GetPoint,用来获取列表里的数据。通过这个类的代码来看,这个类只定义增加数据和获取数据的功能接口,至于数据怎么样保存,怎么样处理,完全是类内部的事务。如果那一天,需要把坐标点的值添加一个偏移量才可以返回,那直接在返回函数里进行计算即可,外面调用者不关心这样业务的变化,从而达到隐藏业务逻辑和算法。
0 0
- 模型(Model)类
- Extjs模型类Model
- Django06模型(Model)
- 域模型(Domain Model)
- 盒模型(BOX Model)
- 瀑布模型(Waterfall Model)
- 增量模型(Incremental Model)
- 螺旋模型(Spiral Model)
- 演化模型(Evolutionary Model)
- SIPOC模型(SIPOC Model)
- 模型验证(Model Validation)
- 语言模型(Language model)
- Thinkphp - 自定义模型(Model)
- 盒模型(Box model)
- 相机模型(Camera Model)
- 线性模型(linear model)
- php 数据库访问类(模型 Model) v1.1
- Hibernate学习笔记—模型类(model)的规范
- 钩题。。。
- leetcode - Palindrome Number
- tomcat 服务器 在45秒内未启动成功
- 解决WINCE6.0新建工程编译出错的问题
- 计算机网络相关
- 模型(Model)类
- Minimum Window Substring
- 关于nova-manage service list检测服务状态原理
- Spring3.x--初始化和销毁Bean
- STL algorithm算法find(16)
- Evaluate Reverse Polish Notation
- 【刷题小记22】素数求和问题
- poj3627~贪心~排序~小水题
- Python的lambda匿名函数