3)职责驱动设计和领域驱动设计前面我提到,当我们尝试写一些复杂功能的时候,我们把功能分解成一个个相对独立的函数。但是,应当将这些函数分配到哪个类中呢?也就是系统中的所有类都应当拥有哪些函数呢?或者说应当表现出哪些行为呢?答案就在这里:以职责为中心,根据职责分配行为。我们在分析系统时,首先是根据客户需求进行用例分析,然后根据用例绘制领域模式和分析模型,整个系统最主要的类就形成了。通过以上分析形成的类,往往和现实世界的对象是对应的。正因为如此,软件世界的这些类
系统 2019-08-29 21:58:56 1911
Spring和Struts2都是应用非常广泛的J2EE应用程序框架,Struts2主要注重的是将视图层和控制层分开,但是不涉及对模型层的优化设计;而Spring除了实现Struts2的MVC功能外,还可以利用其控制反转的思想实现对模型层的优化,从更深层次去降低应用程序各个组件的耦合程度。1、添加ContextLoaderListener到web.xmlXml代码org.springframework.we
系统 2019-08-12 09:30:34 1911
namespaceModel{publicclassMapperFactory{//声明一个ISqlMapper接口类型的数据映射器_mapper,其初始值为nullprivatestaticvolatileISqlMapper_mapper=null;//privatestaticlog4net.Appender.AdoNetAppenderadoApd=null;staticMapperFactory(){RefreshMapperSetting();
系统 2019-08-12 01:33:02 1911
os模块os模块提供了很多可以操作系统里文件及目录相关的参数重点方法importosos.path.getsize('绝对路径')#获取指定文件的存储大小,但是不能准确的获得目录的大小os.path.isfile('绝对路径')#判断是否是文件,返回bool类型(True/False)os.path.isdir('绝对路径')#判断是否是目录,返回bool类型(True/False)os.path.join('文件夹的路径','文件或者其他名称')#拼接字
系统 2019-09-27 17:56:50 1910
首先理解Python的函数能像普通的对象一样能作为参数传递给其他函数,可以被赋值给其他变量,可以作为返回值,可以被定义在另外一个函数内。前面的文章已经对闭包做了介绍,再次进行延伸和理解一下装饰器,主要用于不在改变源代码的情况下进行添加功能,装饰器利用闭包来实现,一般和闭包一起使用。装饰器返回一个函数对象,简单理解在原函数功能上又加入新功能并返回一个和原函数名相同的函数对象。deffuncout(func):deffuncIn(x,y):func(x,y)#
系统 2019-09-27 17:55:41 1910
认识模块对于模块,在前面的一些举例中,已经涉及到了,比如曾经有过:importrandom(获取随机数模块)。为了能够对模块有一个清晰的了解,首先要看看什么模块,这里选取官方文档中对它的定义:复制代码代码如下:AmoduleisafilecontainingPythondefinitionsandstatements.Thefilenameisthemodulenamewiththesuffix.pyappended.Withinamodule,themo
系统 2019-09-27 17:55:19 1910
安装pymysqlpipinstallpymysql2|0使用pymysql2|1使用数据查询语句查询一条数据fetchone()frompymysqlimport*conn=connect(host='127.0.0.1',port=3306,user='root',password='123456',database='itcast',charset='utf8')#创建游标c=conn.cursor()#执行sql语句c.execute("selec
系统 2019-09-27 17:55:11 1910
看看这个logo,有些像python的小蛇吧。这次介绍的数据库codernityDB是纯python开发的。先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给力,结果一看实现的方式,真是太鸟了,居然就是json的存储,连个二进制压缩都没有。这里介绍的CodernityDB也是纯开发的一个小数据库。CodernityDB是开源的,纯Python语言(没有第三方依赖),快速,多平台的NoSQL型数据库。它有可选项支持HTT
系统 2019-09-27 17:55:03 1910
用Python实现常规的静态网页抓取时,往往是用urllib2来获取整个HTML页面,然后从HTML文件中逐字查找对应的关键字。如下所示:复制代码代码如下:importurllib2url="http://mm.taobao.com/json/request_top_list.htm?type=0&page=1"up=urllib2.urlopen(url)#打开目标页面,存入变量upcont=up.read()#从up中读入该HTML文件key1='ke
系统 2019-09-27 17:53:24 1910
本文实例讲述了Python中的装饰器用法。分享给大家供大家参考。具体分析如下:这里还是先由stackoverflow上面的一个问题引起吧,如果使用如下的代码:复制代码代码如下:@makebold@makeitalicdefsay():return"Hello"打印出如下的输出:Hello你会怎么做?最后给出的答案是:复制代码代码如下:defmakebold(fn):defwrapped():return""+fn()+""returnwrappeddefm
系统 2019-09-27 17:53:06 1910