模型(Model)类

在这个例子里,描述算法的类就叫模型类。而这个例子实现的功能比较简单,主要实现用户点击窗口之后,在窗口上画线,并把所有画的线记录起来,以便窗口刷新时还可以显示出来。要实现这个目标,需要使用数据结构来保存直线的起始和终点位置。而负责这方面工作的,就是模型类。模型类设计上,使用了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,用来获取列表里的数据。通过这个类的代码来看,这个类只定义增加数据和获取数据的功能接口,至于数据怎么样保存,怎么样处理,完全是类内部的事务。如果那一天,需要把坐标点的值添加一个偏移量才可以返回,那直接在返回函数里进行计算即可,外面调用者不关心这样业务的变化,从而达到隐藏业务逻辑和算法。

时间: 2024-11-03 22:50:17

模型(Model)类的相关文章

Django学习笔记(三)—— 模型 model

疯狂的暑假学习之 Django学习笔记(三)-- 模型 model 参考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,如果用sqlite,要写完整路径 'USER': '', # 如果用sqlite,这个不用写 'PASSWORD': '', # 如果用sqlite,这个不用写

iOS开发——model类模板(过滤null和ID)

        说明:model类模板已默认过滤null值,附加特殊情况的关键字ID名的冲突(需手动去掉注释代码).MyMessageModel为示例的名字.可以自己随便起. 1.自己创建一个继承与NSObject的类,用于当model数据模型用.然后在.h文件中根据接口文档或者json返回数据的添加相应属性.    并复制以下model类模板代码.h文件的- (instancetype)initWithDictionary:(NSDictionary *)dictionary;方法到自己创建的

ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function testdb(){ $obj=M("User"); dump($obj); } 此时浏览器输出: object(Model)#5 (20) { ["_extModel:private"] => NULL ["db:protecte

asp.net MVC Model 类的主键 int类型、string类型、GUID类型。

在使用asp.net mvc进行定义 模型类的时候,一般情况下,我们都会定义一个属性为 int iD{get;set;} 或为int ClassNameID {get;set;},在这种情况下 1.Int类型主键 EF的默认约定就是第一个属性如果是类名+id或是id(这两情况下id字母大小写没有关系),并且是int类型的,那么直接设置第一个属性为主键,同时设置自增长.不需要指定[Key]关键字(在 System.ComponentModel.DataAnnotations.Schema命名空间下

ThinkPHP 模型(Model)命名规范

一个小问题搞了好久:如果数据库的表名中有下划线,那么在用thinkphp做自动完成时注意Model类的命名要变成驼峰法,文件名和类名都要变.( 另外注意:只有使用create方法创建数据时才能调用到自动验证和自动完成 ) ThinkPHP 模型(Model)命名规范 模型命名规范ThinkPHP 对数据库的表名和模型类的命名遵循一定的规范.首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义.一些例子如下:表名(不含前缀)模型

Django:模型(model)和数据库(mysql)(一)

以一个栗子尝试来记录: 两个表存储在数据库中,BookInfo表示书,HeroInfo表示人物.一本书中有多个人物 在MySQL中新建一个数据库Django1,不用创建表,用Django模型来配置数据库 1.数据库ER图 2.数据库配置 在settings.py中进行数据库的配置. 留意:django默认连接的是sqlite3数据库.我们需要修改成MySQL django1/settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.b

django根据已有数据库表生成model类

django根据已有数据库表生成model类 创建一个Django项目 django-admin startproject 'xxxx' 修改setting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sqlexam', 'USER': 'root', 'PASSWORD': 'root123456'

Django-根据数据库表生成 model 类

根据数据库表生成 model 类 创建一个Django项目 django-admin startproject 'xxxx' 修改setting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sqlexam', 'USER': 'root', 'PASSWORD': 'root123456', 'HOS

Django之Model类

1.model 用来和数据交互的(读取和传入数据) 2.orm Object Relational Mapping对象关系映射,python中的model对象和数据库中的表做映射 3.重要概念 3.1.类-表对应 model中的一个类对应数据库中的一个表.实现方式:继承Model类(django.db.models.Model) 3.2.属性-字段 类中的属性对应数据库中的字段 3.2.1.类型 CharField   字符类型 IntegerField  数值类型,choise枚举类型数据,元

【tensorflow2.0】高阶api--主要为tf.keras.models提供的模型的类接口

下面的范例使用TensorFlow的高阶API实现线性回归模型. TensorFlow的高阶API主要为tf.keras.models提供的模型的类接口. 使用Keras接口有以下3种方式构建模型:使用Sequential按层顺序构建模型,使用函数式API构建任意结构模型,继承Model基类构建自定义模型. 此处分别演示使用Sequential按层顺序构建模型以及继承Model基类构建自定义模型. 一,使用Sequential按层顺序构建模型[面向新手] import tensorflow as