类对象

Django中mysql数据库的增删改查

こ雲淡風輕ζ 提交于 2019-12-06 01:18:11
一、增加 1) save:通过创建模型类对象,执行对象的save()方法保存到数据库中。 例如: In [ 1 ]: from demo_class.models import BookInfo In [ 2 ]: from datetime import date In [ 3 ]: from demo_class.models import HeroInfo In [ 4 ]: book = BookInfo(btitle = 'wang',bpub_date = date(1990,10,10)) In [ 5 ]: book.save() 2)create():通过模型类.objects.create()保存。 In [ 11 ]: HeroInfo.objects.create( ... : hname = '沙悟净' , ... : hgender = 0 , ... : hbook = book ... : ) Out[ 11 ]: <HeroInfo: 沙悟净> 二、查询 1.基本查询 all 方法返回所有数据 In [12]: BookInfo.objects.all() Out[12]: < QuerySet [< BookInfo: 射雕英雄传> , < BookInfo: 天龙八部> , < BookInfo: 笑傲江湖> 雪山飞狐>, < BookInfo

第43课.继承的概念和意义

安稳与你 提交于 2019-12-05 17:00:00
1.组合关系 组合关系的特点 a.将其它类的对象作为当前类的成员使用 b.当前类的对象与成员对象的生命周期相同 c.成员对象在用法上与普通对象完全一致 eg: #include <iostream> #include <string> using namespace std; class Memory { public: Memory() { cout << "Memory()" << endl; } ~Memory() { cout << "~Memory()" << endl; } }; class Disk { public: Disk() { cout << "Disk()" << endl; } ~Disk() { cout << "~Disk()" << endl; } }; class CPU { public: CPU() { cout << "CPU()" << endl; } ~CPU() { cout << "~CPU()" << endl; } }; class MainBoard { public: MainBoard() { cout << "MainBoard()" << endl; } ~MainBoard() { cout << "~MainBoard()" << endl; } }; class Computer { Memory mMem;

java.多态

浪子不回头ぞ 提交于 2019-12-05 12:34:25
概述 多态是继封装、继承之后,面向对象的第三大特性 生活中,比如跑的动作,猫、狗和大象,跑起来是不一样的。再比如飞行的动作,昆虫、鸟和飞机,飞起来也是不一样的。可见,同一类行为,通过不同的事物,可以体现出来不同的形态。多态描述的就是这样的状态。 定义 多态:是指同一行为,具有多个不同表现形式 1、继承或实现【二选一】 2、方法重写【意义体现:不重写,无意义】 3、弗雷引用指向子类对象【格式体现】 多态的体现 多态体现的格式: 父类类型 变量名 = new 子类对象; 变量名.方法名(); //父类类型:指子类对象继承的父类类型,或者实现的父接口类型 代码如下: Fu f = new Zi(); f.method(); 当使用多态方法调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方法 代码: 多态的好处 实际开发中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现多态的扩展性与便利。代码如下: 由于多态特性的支持,showAnimalEat方法的Animal类型,是Cat和Dog的父类类型,父类类型接收子类对象,当然可以把Cat对象和Dog对象,传递给方法。 当eat方法执行时,多态规定,执行的是子类重写的方法,那么效果自然与showCatEat,showDogEat方法一致

业务领域建模Domain Modeling

ε祈祈猫儿з 提交于 2019-12-05 11:24:15
一、什么是业务领域建模    业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。 二、为什么要进行领域建模   软件的世界里没有银弹,是用事务脚本还是领域模型没有对错之分,关键看是否合适。实际上,CQRS就是对事务脚本和领域模型两种模式的综合,因为对于Query和报表的场景,使用领域模型往往会把简单的事情弄复杂,此时完全可以用奥卡姆剃刀把领域层剃掉,直接访问Infrastructure。我个人也是坚决反对过度设计的,因此对于简单业务场景,我强力建议还是使用事务脚本,其优点是简单、直观、易上手。但对于复杂的业务场景,你再这么玩就不行了,因为一旦业务变得复杂,事务脚本就很难应对,容易造成代码的“一锅粥”,系统的腐化速度和复杂性呈指数级上升。   目前比较有效的治理办法就是领域建模,因为领域模型是面向对象的,在封装业务逻辑的同时,提升了对象的内聚性和重用性,因为使用了通用语言(Ubiquitous Language),使得隐藏的业务逻辑得到显性化表达

业务领域建模Domain Modeling

左心房为你撑大大i 提交于 2019-12-05 08:56:22
一、什么是业务领域建模    业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。 二、为什么要进行领域建模   软件的世界里没有银弹,是用事务脚本还是领域模型没有对错之分,关键看是否合适。实际上,CQRS就是对事务脚本和领域模型两种模式的综合,因为对于Query和报表的场景,使用领域模型往往会把简单的事情弄复杂,此时完全可以用奥卡姆剃刀把领域层剃掉,直接访问Infrastructure。我个人也是坚决反对过度设计的,因此对于简单业务场景,我强力建议还是使用事务脚本,其优点是简单、直观、易上手。但对于复杂的业务场景,你再这么玩就不行了,因为一旦业务变得复杂,事务脚本就很难应对,容易造成代码的“一锅粥”,系统的腐化速度和复杂性呈指数级上升。   目前比较有效的治理办法就是领域建模,因为领域模型是面向对象的,在封装业务逻辑的同时,提升了对象的内聚性和重用性,因为使用了通用语言(Ubiquitous Language),使得隐藏的业务逻辑得到显性化表达

业务领域建模Domain Modeling

拥有回忆 提交于 2019-12-05 06:29:48
一、什么是业务领域建模    这里引用百度百科的解释,业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。 二、业务领域建模的设计步骤   领域模型设计是需求分析的关键步骤。它帮助用户及需求分析人员建立业务概念,确定用户业务的问题域,系统涉及的业务范围等等。   1. 从业务描述中提取名词;   2. 从提取出来的名词中总结业务实体,区分名词中的属性、角色、实体、实例,形成问题域中操作实体的集合;   3. 从业务实体集合中抽象业务模型,建立问题域的概念;   4. 用UML提供的方法和图例进行领域模型设计、确定模型之间的关系 ; 三、业务领域建模的方法   四色建模法是由 Peter Coad 发明的一种建模方法,将抽象出来的对象分成四种原型: moment-interval:这种对象表示那些在某个时间点存在,或者会存在一段时间的,这样的对象往往表示了一次外界的请求,比如一次询价(Quotation),一次购买(Sale)

【java】关于Cannot refer to the non-final local variable list defined in an enclosing scope解决方法

被刻印的时光 ゝ 提交于 2019-12-05 04:53:34
今天学习中遇到了一个问题: Cannot refer to the non-final local variable list defined in an enclosing scope 这里的new Runnable(){...}是一个匿名局部内部类,其访问test()方法的局部变量list就会发生编译错误 解决方法: 用final修饰list 原因: 程序执行test()方法时,在方法的调用栈中生成了局部变量变量list,此时产生了一个局部内部类对象,它访问了该局部变量list,当方法test()运行结束后,局部变量list就已死亡了,不存在了,但:局部内部类对象还可能一直存在(只能没有人再引用该对象时,它才会死亡),它不会随着方法test()运行结束死亡。局部内部类对象和局部变量list的生命周期不一致,局部变量list死后,局部内部类对象不能访问一个不存在的变量。 使用final修饰符修饰局部变量list,这时的局部内部类对象将list的“复制品”作为自己的数据成员,当局部变量list死亡以后局部内部类对象依然可以访问list的“复制品”。 注意:Java8中不写final也能通过编译(会隐式的添加final) (我的是Java7) 来源: https://www.cnblogs.com/shuaiBqi/p/11907843.html

设计能力(一)

我是研究僧i 提交于 2019-12-05 02:27:14
说说概要设计 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将对用户目标与需求转换成具体界面设计解决方案的重要阶段。 概要设计的主要任务是把需求分析得到的系统扩展用例图转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。 你如何划分领域边界 # 【领域驱动设计】浅谈聚合的划分与设计 聚合以及聚合根是领域驱动设计中的重要概念,根据定义,聚合是针对数据变化可以考虑成一个单元的一组相关的对象。聚合使用边界将内部和外部的对象划分开来。每个聚合有一个根。这个根是一个实体,并且它是外部可以访问的唯一的对象。根可以保持对任意聚合对象的引用,并且其他的对象可以持有任意其他的对象,但一个外部对象只能持有根对象的引用。如果边界内有其他的实体,那些实体的标识符是本地化的,只在聚合内有意义(参见《领域驱动设计-精简版》第42页)。从定义上看,貌似针对特定上下文的领域模型来讲,聚合的划分与设计并不那么困难

12.2总结

孤街醉人 提交于 2019-12-04 23:55:58
子类对象实例化的过程 子类中所有的构造函数默认都会访问父类中空参数的构造函数 。 因为每一个构造函数的第一行都有一条默认的语句 super(); 子类继承了父类,获取到了父类中内容(属性),所以在使用父类 内容之前,要先看父类是如何对自己的内容进行初始化的 PS 1、当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者 super语句指定要访问的构造函数 2、子类构造函数中如果使用this调用了本类构造函数,那么默认的 super(); 就没有了,因为supe和this都只能定义在第一行,所以只能有 但是可 以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数 3、super语句必须要定义在子类构造函数的第一行!因为父类的初始化动作 要先完成。 多态性1 多态性时面向对象中最重要的 ,有两种情况体现: 1,方法的重载(overload)和重写(overwrite) 2,对象的多态性----可以直接应用在抽象类和接口上 java引用变量有两个类型:编译时类型和运行时类型,编译时类型,由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。 *若编译时类型和运行时类型不一致,就出现多态多 多态性2 多态性的状态--在java中,子类的对象可以代替父类对象使用 一个变量只能有一种确定的数据类型 一个引用数据类型变量可能指向(引用)多种不同类型的对象

Python-基础-常用术语对照表

南笙酒味 提交于 2019-12-04 23:53:33
下面内容主要摘抄自 python 官网, https://docs.python.org/3.7/glossary.html#glossary ,部分内容有删减。 2to3 一个将 Python 2.x 代码转换为 Python 3.x 代码的工具,能够处理大部分通过解析源码并遍历解析树可检测到的不兼容问题。 2to3 包含在标准库中,模块名为 lib2to3;并提供一个独立入口点 Tools/scripts/2to3。参见 2to3 - 自动将 Python 2 代码转为 Python 3 代码。 因为官方将在2020年不再支持 Python 2.x, 在遇到没有 Python 2.X 版本 的code 的时候,可以尝试使用这个工具将代码转化成Python 的版本。 abstract base class -- 抽象基类 抽象基类简称 ABC,是对 duck-typing 的补充,它提供了一种定义接口的新方式,相比之下其他技巧例如 hasattr() 显得过于笨拙或有微妙错误(例如使用 魔术方法)。ABC 引入了虚拟子类,这种类并非继承自其他类,但却仍能被 isinstance() 和 issubclass() 所认可;详见 abc 模块文档。 Python 自带许多内置的 ABC 用于实现数据结构(在 collections.abc 模块中)、数字(在 numbers 模块中)