Tag: mixins

dynamic混合性状

有一个特点 trait Persisted { def id: Long } 我该如何实现一个方法来接受任何case类的实例,并将其中的特性与混合的特性一起返回? 该方法的签名如下所示: def toPersisted[T](instance: T, id: Long): T with Persisted

什么是C + +混合风格?

我刚刚遇到了这个关键字C++ Mixin-Style ,有谁知道这是什么? 在这篇文章中 ,已经被作为devise模式回答了。 它是否与本文档中描述的devise模式相同?

rubymodule_function与包括模块

在ruby中,我明白模块的function可以通过使用module_function在模块中混合使用,如下所示。 我可以看到这是如何有用,所以你可以使用该function,而不需要在模块中混合。 module MyModule def do_something puts "hello world" end module_function :do_something end 我的问题是,为什么你可能想要定义这两种方式的function。 为什么不只是有 def MyModule.do_something 要么 def do_something 在什么样的情况下将这个function混合在一起,或者作为一个静态的方法来使用呢?

Mixin类__init__函数不会自动调用吗?

我想使用Mixin来总是添加一些初始化function到我的子类,每个类都从不同的API基类inheritance。 具体来说,我想创build多个不同的子类,从这些不同的API提供的基类之一inheritance,以及一个Mixin,它将始终以相同的方式执行Mixin初始化代码,而无需代码复制。 但是,似乎Mixin类的__init__函数永远不会被调用,除非我们在Child类的__init__函数中明确地调用它,这是不太理想的。 我已经build立了一个简单的testing用例: class APIBaseClassOne(object): def __init__(self, *args, **kwargs): print (" base ") class SomeMixin(object): def __init__(self, *args, **kwargs): print (" mixin before ") super(SomeMixin, self).__init__(*args, **kwargs) print (" mixin after ") class MyClass(APIBaseClassOne): pass class MixedClass(MyClass, SomeMixin): pass 正如你在下面的输出中看到的,Mixin函数的init永远不会被调用: >>> import test >>> test.MixedClass() base <test.MixedClass object at 0x1004cc850> 有没有办法做到这一点(在调用Mixin中有一个初始化函数),而不写每个子类来显式调用Mixin的init函数? (即,不必在每个class级都做这样的事情:) class MixedClass(MyClass, […]

什么是混合(作为一个概念)

我试图让我的头在Mixin的概念,但我似乎无法理解它是什么。 我看到的方式是通过inheritance来扩展类的function。 我读过,人们称他们为“抽象的小类”。 谁能解释为什么? 如果你能根据下面的例子来解释你的答案,我将不胜感激(来自我的演讲幻灯片演示):

Mixin与inheritance

混合和inheritance有什么区别?

Mixins vs scala中的组合

在Java世界中(更确切地说,如果你没有多重inheritance/混合),经验法则很简单:“赞成inheritance类的对象组合”。 我想知道是否/如何改变,如果你也考虑mixin,特别是在斯卡拉? mixin被认为是多重inheritance的一种方式,或者是更多的类构成? 是否还有一个“赞成对象构成上课组成”(或反过来)的指导方针? 当人们使用(或滥用)mixins的时候,我也看到了一些例子,当对象组合也可以完成这个工作时,我并不总能确定哪一个更好。 在我看来,你可以和他们取得相似的东西,但也有一些差异,例如: 知名度 – 与mixin一切都成为公共API的一部分,这是不是组成的情况。 详细程度 – 在大多数情况下,mixin不那么冗长而且易于使用,但并非总是如此(例如,如果您还在复杂层次结构中使用自我types) 我知道简短的答案是“这取决于”,但是当这个或那个更好时,可能有一些典型的情况。 目前我可以提出一些指导方针的例子(假设我有两个性状A和B,A想用B方法): 如果你想用B的方法扩展A的API,那么混合,否则组合。 但是,如果我创build的类/实例不是公共API的一部分,则无济于事。 如果你想使用一些需要mixin的模式(例如Stackable Trait Pattern ),那么这是一个简单的决定。 如果你有循环依赖,那么mixins与自我types可以帮助。 (我尽量避免这种情况,但并不总是那么容易) 如果你想要一些dynamic的,运行时决定如何做组合然后对象组成。 在很多情况下,mixin似乎更容易(和/或不那么冗长),但是我确定他们也有一些陷阱,比如两个artima文章中描述的“上帝阶级”和其他一些陷阱: 第1 部分 , 第2部分在我看来,大多数其他问题是不相关的/不太严重的斯卡拉)。 你有更多的提示吗?

SCSS mixin中if / else条件的语法

您好我正在学习SASS / SCSS,并试图重构我自己的mixin的clearfix 我想要的是mixin是基于我是否通过混合宽度。 到目前为止的想法(伪代码,因为我将包括其他mixins) @mixin clearfix($width) { @if !$width { // if width is not passed, or empty do this } @else { display: inline-block; width: $width; } } 这是我以为我可以称之为,但它不工作。 @include clearfix(); 要么 @include clearfix(100%) 要么 @include clearfix(960px) 我会很感激任何帮助最好的或正确的方式来做到这一点!

在Facebook React中使用mixins与组件重用代码

我开始在一个Backbone项目中使用Facebook React,到目前为止这个过程非常顺利。 但是,我注意到有一些重复进入我的React代码。 例如, 我有几个像INITIAL , SENDING和SENT等状态的窗体小部件 。 当一个button被按下,表单需要被validation,一个请求被做,然后状态被更新。 状态保存在里面反应this.state ,当然还有字段值。 如果这些是骨干视图,我会提取一个名为FormView的基类,但我的印象是,React既不支持也不支持子类共享视图逻辑 (纠正我,如果我错了)。 我已经看到了两种在React中重用代码的方法: Mixins (如React附带的LinkedStateMixin ); 容器组件(例如react-infinite-scroll )。 我正确的mixin和容器是首选在Reactinheritance? 这是一个故意的devise决定? 使用混合或容器组件为第二段的“表单控件”示例更有意义吗? 这是FeedbackWidget和JoinWidget处于当前状态的要点 。 他们有一个类似的结构,类似的beginSend方法,都需要有一些validation支持(还没有)。

Sass – 将hex转换为RGBa用于背景不透明

我有以下的Sass mixin,这是对RGBa例子的一个完整的修改: @mixin background-opacity($color, $opacity: .3) { background: rgb(200, 54, 54); /* The Fallback */ background: rgba(200, 54, 54, $opacity); } 我已经申请$opacity确定,但现在我坚持与$color部分。 我将发送到mixin的颜色将是HEX而不是RGB。 我的例子使用将是: element { @include background-opacity(#333, .5); } 如何在这个mixin中使用HEX值?