问题标签 [cake-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
akka - Akka 和蛋糕图案
我很困惑如何使用蛋糕模式确保我的演员具有适当的依赖关系。我仍然在处理这个问题,我在任何地方都找不到任何例子。我基本上只是在寻找要遵循的教程/资源。
干杯,克里斯。
scala - 避免与蛋糕模式的名称冲突
我目前正在使用蛋糕模式来实现一些优化算法。我经常遇到名称冲突问题。例如:
在这里,在和特征constant
中都有定义,但它们的值可能不同。我可以在名称前加上特征名称,但我发现它又丑又脆()。有没有更好的方法呢?Add
Mul
def mulConstant: T
scala - 具有不同生命周期的对象的 Scala 蛋糕模式
我尝试在我的项目中使用蛋糕图案并且非常喜欢它,但是有一个问题困扰着我。
当所有组件都具有相同的生命周期时,蛋糕模式很容易使用。您只需定义多个特征组件,通过特征实现扩展它们,然后将这些实现组合到一个对象中,并通过自类型自动解决所有依赖关系。
但是假设您有一个可以作为用户操作的结果创建的组件(具有自己的依赖项)。该组件无法在应用程序启动时创建,因为它还没有数据,但它应该在创建时具有自动依赖解析。这种组件关系的一个示例是主 GUI 窗口及其复杂的子项(例如,笔记本窗格中的选项卡),它们是根据用户请求创建的。主窗口是在应用程序启动时创建的,其中的一些子窗格是在用户执行某些操作时创建的。
这在 Guice 等 DI 框架中很容易完成:如果我想要某个类的多个实例,我只需注入一个Provider<MyClass>
; 然后我在该提供者上调用get()
方法,并且所有依赖项都会MyClass
自动解决。如果MyClass
需要一些动态计算的数据,我可以使用辅助注入扩展,但生成的代码仍然归结为提供者/工厂。相关概念、范围也有帮助。
但我想不出使用蛋糕图案的好方法。目前我正在使用这样的东西:
然后我混合DefaultSubpaneProvider
我的顶级蛋糕并注入SubpaneProvider
所有需要创建子窗格的组件。
这种方法的问题是我必须手动将依赖项(model
in ModelContainerComponent
)从顶级蛋糕向下传递到动态创建的蛋糕。这只是一个简单的例子,但可以有更多的依赖关系,也可以有更多类型的动态创建的蛋糕。它们都需要手动传递依赖项;此外,某些组件接口的简单更改可能会导致多个提供商进行大量修复。
有没有更简单/更清洁的方法来做到这一点?这个问题在蛋糕图案中是如何解决的?
scala - Junits 使用 Mocks scala 特征和蛋糕模式
我有一个 scala 特征如下 -
现在我听说过蛋糕图案,但我无法弄清楚如何应用蛋糕图案来模拟这样的特征。
谁能指出如何做到这一点?
scala - Scala cake-pattern compile error with Precog config pattern
Following from this question, I have now the following:
I get the following compile error:
This is actually the error I have been struggling with. Can somebody explain why it occurs? Currently, as a work-around, I just explicitly cast the config object in each module implementation.
unit-testing - How to use mocks with the Cake Pattern
I have the following class:
Typically I'd use this class in production like so:
val linkService = LinkUserService with GoogleOAuthProvider
When it comes to testing, I want to replace the oauthProvider
with a mock such that's been trained by my unit test to respond like so: oauthProvider.loadCredential("nobody") returns null
. Is this possible? If so, how would I set up my unit test to do so?
scala - 依赖注入的抽象字段
在 Scala 中,使用下面的依赖注入方法有什么问题吗?
现在我们把事情联系起来
显然,Cake 模式提供了更大的灵活性(尤其是围绕自身类型),但是对于更简单的用例,它的样板代码要少得多,同时仍然提供编译时检查和干净明确的接口。
scala - Scala 蛋糕模式和依赖冲突
我正在尝试使用 Cake Pattern 在 Scala 中实现依赖注入,但遇到了依赖冲突。由于我找不到具有此类依赖关系的详细示例,因此这是我的问题:
假设我们有以下特征(有 2 个实现):
以及以下两个蛋糕模式模块(在此示例中,它们都是依赖于我们HttpClient
的功能的 API):
和
现在,在创建使用这两个模块的最终应用程序时,我们需要为这两个模块提供httpClient
依赖项。但是如果我们想为每个模块提供不同的实现呢?或者只是提供不同配置的依赖项的不同实例(例如使用不同ExecutionContext
的实例)?
我们可以在每个模块中以不同的方式命名依赖项,并在它们前面加上模块名称,但这会很麻烦且不优雅,而且如果我们自己不能完全控制模块,也将无法工作。
有任何想法吗?我误解了蛋糕图案吗?
scala - Cake Pattern 自类型注释与存根 def 或 val
当使用蛋糕模式时,你什么时候想使用自类型注释,例如:
与存根定义
或存根值
更新:我会更具体一点(希望如此)。所有三种形式都定义了对 Bar 实例的需求。所以基本上,任何以任何一种形式混合在这个特征中的非抽象类都必须提供 Bar 的实现。我的问题是,我什么时候想强制使用自类型注释来实现 Bar;我什么时候想使用 def stub 强制和实现 Bar,什么时候我想使用 val stub 强制它。我希望现在这个问题更清楚了。
谢谢内塔