我已经阅读了一些关于Getters和Setter使用的文章/帖子,以及它们如何帮助破解域模型对象中封装的目的.我理解不使用setter背后的逻辑 - 你允许客户端代码在对象业务规则和不变量的上下文之外操纵该对象的属性.
现在这位校长仍然困惑我.例如,如果我需要更改对象的成员变量的值,会发生什么?例如,如果某个人的姓名发生变化,我该如何在模型中反映出来?起初我想,为什么没有一个名为'ChangeName'的函数让我传入新名称,然后又可以改变内部'name'变量.嗯....那只是一个二传手不是吧!
我需要澄清的是 - 如果我要完全消除setter,那么在上述情况下,我是否应该完全依赖构造函数参数?我应该通过构造函数传递新的属性值来代替旧的属性值,之后我可以通过将对象传递给我拥有的任何持久性基础结构来持久化更改吗?
这两篇文章在这个讨论中很有用:
getter setter encapsulation domain-driven-design getter-setter
回覆:
上述问题涉及在进行文件选择后,使"更改"事件在浏览器中一致地触发.http://jsfiddle.net/7wR2L/上的示例证明了这一点已得到解决
我的情况有点不同.看来这个问题在另一个背景下变得丑陋.
基于设计约束,我必须使用非文件输入元素('a'标签)来触发文件输入元素上的"click"事件.到目前为止,我的测试看起来,当以这种方式选择文件时,文件输入无法触发"更改"通知.
请查看http://jsfiddle.net/rudylattae/7wR2L/8/上的示例
测试环境:
Windows Server 2008 R2
Windows XP专业版(2002 - SP3)
是否有任何已编译的php包内置readline支持?
为了在交互模式下使用php,需要readline.
我看了如何为Windows编译php,但他们需要我没有的MS Visual Studio.
我有一个Fabric任务需要访问我的Django项目的设置.
在Windows上,我无法将Fabric安装到项目的virtualenv中(Paramiko + pycrypto deps的问题).但是,我能够在我的系统范围的站点包中安装Fabric,没问题.
我已经将Django安装到项目的virtualenv中,当我使用"VIRTUALENV\Scripts\activate.bat"脚本激活virtualenv时,我可以轻松地使用所有"> python manage.py"命令.
我的项目中有一个结构任务文件(fabfile.py),它提供设置,测试,部署等任务.我的fabfile中的一些任务需要通过"来自django.conf导入设置来访问我的django项目的设置".
由于我唯一可用的Fabric安装在我的系统范围的站点包中,我需要激活fabfile中的virtualenv,以便django可用.为此,我使用项目virtualenv的"activate_this"模块来访问项目设置等.在执行activate_this.py之前和之后使用"print sys.path",我可以告诉python路径更改指向项目的virtualenv.但是,我仍然无法导入django.conf.settings.
我已经能够在*nix(Ubuntu和CentOS)和Cygwin上成功完成这项工作.您是否在Windows上使用此设置/工作流程?如果是这样你能帮我弄清楚为什么它不适用于Windows或提供任何提示和技巧来解决这个问题?
谢谢和干杯.
REF:
本地开发环境:
compilation ×1
django ×1
events ×1
fabric ×1
file-io ×1
getter ×1
jquery ×1
php ×1
python ×1
setter ×1
virtualenv ×1
windows ×1
windows-xp ×1