Smalltalk 和 IoC

2024-04-30

我看到很多 .Net 和 Java 的 IoC 框架。有谁知道为什么 Smalltalk 没有等效的框架。这更像是一个哲学问题。我想知道 Smalltalk 的做事方式中是否有某些东西排除了 IoC 框架的必要性。


MVC http://en.wikipedia.org/wiki/Model_view_controller是在 Smalltalk 上发明的,可以说是最初的控制反转 http://en.wikipedia.org/wiki/Inversion_of_control框架。虽然比 Java 版本更轻量级,但它具有保存数据的模型、响应控制器传播的事件而呈现数据的视图的基本概念。

不那么轻率的是,Java 实际上需要大量框架支持来构建 Web 应用程序,而无需过多的样板代码。 Smalltalk 支持编程习惯,例如延续 http://en.wikipedia.org/wiki/Continuations,这允许作者假装他们没有真正编写事件驱动的代码。Seaside http://en.wikipedia.org/wiki/Seaside_(software)像这样工作,通过更灵活的开发范例提供 IoC 的好处。

编辑:MVC 是 Smalltalk 中 UI 的一个框架(可以说它并不是真正的框架,但类库内置了对它的支持)。它具有控制属性的反转,因为视图和模型响应控制器调度的事件 - 不要打电话给我们,我们会打电话给您属性。控制反转是框架内的一种设计模式,用于减少 java 应用程序中对大量样板文件的需求。在应用程序框架的某些定义中,控制反转是被视为区分框架和库的主要属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Smalltalk 和 IoC 的相关文章

  • 如何创建一个 Ninject 自定义作用域,在该对象被释放之前返回相同的对象?

    在 Ninject 中 在单例范围内声明绑定意味着每次都会返回相同的对象 永远只能有一个对象 我想要的是一次返回一个对象 换句话说 第一次调用 Get 实例化一个新对象并返回它 对 Get 的后续调用返回相同的实例 该对象已被处置 对象被释
  • 从 Smalltalk 中的集合生成所有组合

    我已经看到这个问题在 C 和其他语言中得到解决 但在 Smalltalk 中却没有得到解决 我有3个集合 例如 a 3 4 5 b 4 1 2 c 5 2 3 我需要做出所有可能的组合 i 即 3 4 5 3 4 2 3 4 3 3 1 5
  • Pharo 5 无头模式下的调试

    我正在无头模式下使用 RFB 运行 pharo 5 海边 pharo vm display null vm sound null app pharo5 Pharo5 0 image no quit 在本地运行良好 带有 XFCE 的 Ubu
  • 使用多个参数注册 DbContext

    我正在尝试将 TenantProvider 注入 DbContext public class AppDbContext IdentityDbContext
  • 如何从字符串中删除变音符号(变音符号)?

    如何转换字符串 例如P li lu ou k k p l belsk dy into Prilis zlutoucky kun upel dabelske ody 源字符串采用 Unicode 因此原则上应该可以使用规范化 分解来分隔元音变
  • DI 和存储库模式

    目前 我的代码与此类似 为了说明一点而缩短 DAL 存储库接口 public interface IRepository
  • 使用 MVC 和 Ninject 作为 IoC 容器构建 WinForms 应用程序

    我必须重新编写一个大型 WinForms 应用程序 并且我想使用 MVC 来增强测试能力等 我还想采用 Ninject 作为我的 IoC 容器 因为它轻量 快速 并且会增加我的应用程序未来的可扩展性 我进行了大量的阅读 并成功地开始了解这个
  • 删除了 C# 和 IoC 传递依赖项

    我有一个使用 IoC windsor 的解决方案 解决方案中的项目如下 接口 保存我将使用的所有接口合约 IoC Installers 保存我的依赖项的所有安装程序 参考实现和接口 IoC 包含一个包含 IoC 容器的单例类 该类执行容器的
  • 作为装饰器登录与依赖注入 - 如果我需要登录类内部怎么办?

    我最初问这个问题是在这条评论 https stackoverflow com questions 7905110 logging aspect oriented programming and dependency injection tr
  • 何时使用 IOC 容器?

    我试图了解何时应该使用容器而不是手动注入依赖项 如果我有一个使用 1 2 个接口的应用程序 并且每个接口只有 1 2 个具体实现 我会倾向于自己处理 如果我有一个使用 2 3 个接口的小型应用程序 并且每个接口有 2 3 个具体实现 我应该
  • 如何使用 IoC 容器组织 MVP?

    我正在尝试使用 winforms 应用程序来理解 IoC 概念 假设我有一个演示者 其构造函数将其视图和服务作为构造函数参数 所以在表单代码中我有这样的东西 mnPresenter new Presenter this new AppSer
  • 如何在没有副本的情况下向后流式传输集合?

    我想知道如何向后流式传输集合无副本在法罗 吱吱声中 例如 要流式传输 1 2 3 so stream next回报3 then 2 then 1 我知道我可以使用collection reversed readStream but reve
  • 简单注入器从命名空间注册所有服务

    我的服务接口的命名空间为Services Interfaces 服务接口的实现有一个命名空间Web UI Services 例如 我有 2 个服务实现 IUserService 需要注册到UserService ICountryServic
  • 在 Web 应用程序中何处以及如何使用拦截器?

    我最近对拦截器概念很感兴趣 我知道这个概念在 NHibernate Entity Framework 等许多库中都有使用 但我对如何在 ASP NET MVC Web 应用程序中使用这个概念感兴趣 在 Mvc Web 应用程序中什么地方有用
  • Spring - 使用 new 是一种不好的做法吗?

    正在创建对象by hand 即使用new操作员而不是注册Springbean 和使用依赖注入被认为是不好的做法吗 我的意思是 确实Spring IoC容器必须了解应用程序中的所有对象吗 如果是这样 为什么 你希望 Spring 创建 bea
  • 哪些 .NET 依赖注入框架值得研究? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何在非Spring的构造型类中使用@Autowired

    我想在此类中使用该存储库 但是当我放置像 Component 这样的构造型时 我从 IDE 收到错误 无法自动装配 未找到 身份验证 类型的 bean public class CustomMethodSecurityExpressionR
  • MVC3、Ninject、MvcSiteMapProvider - 如何将依赖项注入到重写方法

    我有一个正在使用的 MVC3 应用程序Ninject http ninject org and Mvc站点地图提供者 http mvcsitemap codeplex com 我创建了此类 MvcSiteMapProvider 使用它来动态
  • MVC和依赖注入,被迫使用单例Controller?

    我正在致力于构建一个根据 MVC 原则运行并利用依赖注入的 PHP 框架 我想我已经把前端控制器部分放下了 有一个工作路由器实例化控制器实例并根据请求的 URI 调用适当的操作 接下来是依赖注入 我想实现一个使用反射解决依赖关系的容器 这样
  • 允许调用函数覆盖默认选项 - jQuery UI 对话框

    我希望 CallingFunction 能够覆盖中提供的默认选项showDivPopUp功能 function calling showDivPopUp title of pop up box message to show buttons

随机推荐

  • VB错误“需要对象”

    当我运行以下脚本时 我在第 54 行 最后一行 收到 需要对象 错误 怎么了 Option Explicit Dim cmdString g strHostFile filepath flexnetpath importcmd dtmTod
  • ora-00972 标识符太长 oracle 10g

    我收到标题中提到的错误 我使用的是 36 个字符的 ID 此错误仅在我的 asp net web 表单中的 sqldatasource 中抛出 当我执行更新时这不是问题Oracle sql developer 我怎样才能解决这个问题 Ora
  • Spring Security Ldap,仅登录指定组中的用户

    就像标题一样 我希望只有规范的用户 这是我的验证码 public void configureGlobal AuthenticationManagerBuilder auth throws Exception auth ldapAuthen
  • 安全沙箱违规

    运行我的 Flash 应用程序时出现以下错误 违反安全沙箱 与 rtmp system ip live 的连接已停止 不允许从 file F Flash 工作 RTS RT vlab BIOTECH NEO 简单神经元的被动属性 vi 特征
  • Google API 控制台 - 缺少客户端密钥

    我尝试为 Android 应用程序创建一个测试客户端 ID 该应用程序使用 OAUTH 2 0 作为检索用户配置文件的登录名 我按照步骤在谷歌控制台上完成了客户端 ID 的创建 但我没有在任何地方看到客户端密钥 我正在尝试帮助我的雇主获取其
  • catch 块和方法中的 throw new Exception 之间的区别

    在一种方法中 我希望能够将一个值插入到 div 中 该 div 是我选择解析的 html 文档的一部分 public void AddToDiv string div Code to read the html document and l
  • 使用带有 _O_U8TEXT 的 setmode 处理 unicode 时 C++ 崩溃

    我尝试打印 unicode 的是 setmode fileno stdout O U8TEXT string str u8 unicode hangul cout lt lt str lt lt endl 我使用 setmode 来正确显示
  • 如何打印/存储非 ASCII 字符(unicode?)

    我正在阅读大量的音乐家档案 其中许多艺术家的名字中都有奇怪的字符 因为他们可能来自德国或其他一些具有非 ASCII 字符的国家 我希望能够将这些音乐家的名字存储在列表中并将它们打印到控制台 如何打印从文本文件读入的带有奇怪字符的字符串 让我
  • 我们可以通过编程方式访问 iOS 系统设置的常规/辅助功能/字幕和字幕吗?

    我必须使用 iOS 设置应用程序中的字幕和字幕系统设置 有什么办法 我们可以通过编程来获取它 您可以使用 UIAccessibilityIsClosedCaptioningEnabled 方法来了解 iOS 设置 gt 常规 gt 辅助功能
  • 删除 Eclipse 图形布局中的 Android 状态栏

    如何删除 Eclipse 图形布局中 android 模拟器的状态栏 我的应用程序设置为以全屏模式运行 但我在布局方面遇到了困难 因为状态栏出现在 Eclipse 的图形布局中 您只需更改下拉列表中的主题 或者用 Android 术语来说可
  • 使内容适合 div 的宽度

    如何使文本适合 div 的宽度 这是我的代码 div class column a href class user thumbnail img src width 100px height 100px a span class name t
  • ImageMagick - 向图像添加白色透明覆盖层

    我需要拍摄一张正常的图像 并添加白色透明覆盖层 使其看起来像这样 不要注意转换后图像上的文本或它是原始图像的裁剪版本这一事实 我需要简单地将顶部转换为完全相同的图像 只是使用白色透明的覆盖层 我还需要它是一个 cli 命令 更新答案 这更容
  • 如何在Sql Server 2008全文搜索中忽略html标签

    我正在使用 SQL Server 2008 全文搜索引擎开发一个知识库项目 项目包含在文章和文件中 其中每篇文章都有多个文件 在这些文章中 全部内容是纯html 现在 我在 SQL Server 2008 上成功创建了全文目录和索引 并且我
  • Python sched.scheduler 超过最大递归深度

    我最近开始学习 Python 我正在制作的简单应用程序的一部分包括一个在其自己的线程中运行的带有 hh mm ss 显示的计时器 环顾网络 我发现了两种实现此目的的方法 使用 sched scheduler 使用threading Time
  • 创建自定义 BigDecimal 类型

    在我的应用程序中 所有 BigDecimal 数字都被缩放为具有两位小数 换句话说 每次我在代码中创建一个新的 BigDecimal 时 我也需要使用方法scale BigDecimal x BigDecimal ZERO x setSca
  • 如何在 Rails Admin 中隐藏添加新选项

    我正在自定义 Rails Admin https github com sferik rails admin https github com sferik rails admin 我需要禁用 隐藏某些型号的 添加新 选项 任何帮助都会为我
  • Python:使用html解析器提取特定数据

    我开始使用 Python 中的 HTMLParser 从网站中提取数据 我得到了我想要的一切 除了两个 HTML 标签内的文本 以下是 HTML 标签的示例 a href http wold livingsources org vocabu
  • 当我在 Excel 中运行宏时标题被切断

    我在主电子表格中设置了一个标题 在其中运行不同的宏以对信息进行不同的排序 当我运行宏时 标题的底部部分被切断 我的标题确实包含图像 不确定这是否与之有关 我还在所有宏中运行以下代码部分来格式化第一行信息 Rows 1 1 WrapText
  • 将日期时间转换为时间跨度

    我想转换一个DateTime实例化为TimeSpan举例来说 可能吗 我环顾四周 但找不到我想要的东西 我只找到了时差 更具体地说 我想转换DateTime实例以毫秒为单位 然后将其保存到IsolatedStorage 中 您可以只使用日期
  • Smalltalk 和 IoC

    我看到很多 Net 和 Java 的 IoC 框架 有谁知道为什么 Smalltalk 没有等效的框架 这更像是一个哲学问题 我想知道 Smalltalk 的做事方式中是否有某些东西排除了 IoC 框架的必要性 MVC http en wi