提出这个问题的另一种方法是:根据你的控制反转是什么?
我问这个问题是因为关于IoC的维基百科文章被非OO解释劫持了.这是从讨论页面获取的,来自2007年:
我冒昧地完全重写了这个页面,因为之前的内容被无意义的"面向对象"喋喋不休地接管了......
我没有看到Inversion of Control如何在OO语言之外有任何意义.在程序语言中放弃控制已经有很多解释(事件编程就是一个),而纯函数式语言不需要像控制反转这样的概念,因为它们具有高阶函数.
此外,在Martin Fowler详细阐述IoC 的文章中,他专门处理OO示例.
那么,IoC是否只是一个OO概念,它到底是什么?
对我来说,IoC试图在大多数OO语言强加的限制内将函数转换为数据,并尝试将这些函数作为参数传递给其他函数.这不是IoC的唯一部分,但其中有一部分.
还有工厂设计模式,在传递之前构造和配置对象树.
对我而言,IoC完全是OO概念.
你的答案是什么?
我确定我以前做过这个,但我已经在文档中了一段时间,似乎无法再找到它.我需要能够在我的业务领域的运行时确定我的应用程序运行的上下文.这样我可以使用配置文件进行一些切换,并使用正确的方法来确定我是在运行调试还是发布等.我非常有信心它在System.Environment中,但我还没有遇到它.
当2008可用时,有什么理由继续运行Visual Studio 2005?
我在一个环境被指定为Visual Studio 2005的项目上工作.这有很好的技术原因吗?我可以使用Visual Studio 2008并构建一个与Visual Studio 2005相同的应用程序构建100%无法区分的应用程序吗?
我无法理解这些术语之间的差异.
COM和ActiveX是同义词吗?
ActiveX对象只是一个公开IDispatch的COM对象吗?
很多旧的MSDN页面都提到没有任何COM上下文的IDispatch.它是否有单独的历史记录,并且刚刚在其生命周期的后期在COM"保护伞"下引入?
OLE适合哪里?它(可观)是否存在于MFC命名和MSDN中 - 所有这些都只是遗产?
维基百科提供了一些见解,但并不多.我找不到更深入的参考资料.
我需要编写一个程序,当最小化时,它存在于系统托盘中,我将使用Java 6的SystemTray API来实现这一点.
当用户按下某个热键时,如何让该应用程序出现?
例如,应用程序正在运行但已最小化.当用户按下CTRL-SHIFT-Y或其他东西(或者像Google桌面的搜索,CTRL两次)并且应用程序最大化时.
编辑:我知道如何将Java窗口带到前台.我更具体地询问如何使正在运行的Java应用程序监听热键.
我们有一个使用WinAPI编写的遗留应用程序.我们想在一些对话框中添加"Yes to All"按钮.不幸的是,现有的MessageBox功能不允许自定义按钮或按钮标题.
最好的方法是什么?是否有一个光滑的黑客轻松添加自定义按钮?或者我们应该创建自己的MessageBox替换?
.net datetimepicke无法更改为波斯日历我需要一个支持geregorian和波斯语和Hijri文化的多文化DateTimePicker.
我想在python中创建一个具有一些属性的对象,我想保护自己不会意外使用错误的属性名称.代码如下:
class MyClass( object ) :
m = None # my attribute
__slots__ = ( "m" ) # ensure that object has no _m etc
a = MyClass() # create one
a.m = "?" # here is a PROBLEM
Run Code Online (Sandbox Code Playgroud)
但运行这个简单的代码后,我得到一个非常奇怪的错误:
Traceback (most recent call last):
File "test.py", line 8, in <module>
a.m = "?"
AttributeError: 'test' object attribute 'm' is read-only
Run Code Online (Sandbox Code Playgroud)
有没有明智的程序员能够节省一些时间并让我了解"只读"错误?
我们正在运行tomcat,我们正在生成pdf文件.我手头没有文件大小,所以我无法直接链接到服务器上的文件.所以我直接发送输出.
response.setContentType("application/force-download");
OutputStream o = response.getOutputStream();
Run Code Online (Sandbox Code Playgroud)
然后我直接输出到这个OutputStream.
唯一的问题是接收器没有获取文件大小,所以他们不知道下载需要多长时间.有没有办法告诉响应文件有多大?
编辑 我知道文件大小,我只是不能告诉STREAM文件有多大.
本书是在分时系统,程序编程和大约30年的软件工程经验时代编写的.随着现有图书馆,更高级别语言,IDES以及互联网上可用的文档和示例数量的改进,本书的大部分内容仍然适用吗?
虽然我可以相信在项目中添加新人可能最初会减慢速度,但我认为单元测试,关注点分离以及其他形式的自动化和设计改进等事情会让团队的新成员更快地提高工作效率.在书中,假设项目具有良好的设计文档和流程.
我没有大型项目或大型团队的经验,所以我很想知道那些与他们有经验的人的想法.编辑:我想知道像Wikis,即时消息和互联网这样的新通信工具是否会减少通信时间.基于每个人的答案,我会说通信效率的任何增加都被复杂性的增加所抵消.