普遍的共识是,除非有充分的理由不这样做,否则方法的参数数量应该足够小。
小到多少因作者而异(代码完成中的七个Steve McConnell,清洁代码中的Robert C. Martin三个 EM>);我想大多数开发人员会同意,如果一个类中的大多数方法包含五个或更多参数,或者如果给定方法包含十个以上参数,则需要进一步调查。
此指南是否适用于AngularJS属性?根据属性,我的意思是hello
和something
:
<my-component hello="world" something="abc" ...></my-component>
一个实际案例是我正在审查一个项目,其中有一堆AngularJS组件和指令包含8到10个属性,有些属性最多包含15个。如果那些是方法,我会提出警告。但是,我不确定AngularJS的特殊性,它可以证明具有非常扁平的结构,而不是将属于一起的属性分组为单独的对象。
我认为不分组属性的原因之一是能够以更精细的方式定义属性样式(单向等)。
答案 0 :(得分:1)
我想对属性需要从视图传递到组件类的方式应该没有任何限制。
我想说你应该把这个属性称为html语法,我们通过将特殊变量绑定到这个属性来将数据传递给组件类。
这些属性值的更多内容不会作为函数参数传递,而是作为类中的变量传递。
HTML属性不能限制为5或10.您可以根据UI中的要求提供属性数。有些人说角度组件是新标签ang html 6或者什么
这里我通过添加两个属性
将2个值传递给我的子组件
如果你是我正常的情况,我应该被允许尽可能多地绑定
在我班上我只有变量来处理它。
export class EditComponent implements OnInit {
@Input() text: string;
@Output() editDone = new EventEmitter<Object>();
private originalText: string;
希望它有所帮助。
答案 1 :(得分:1)
鉴于html对属性没有限制,angularjs对绑定没有限制,因为绑定数量不会产生问题。
然而,它至少在设计方面可能是一个问题,它非常依赖于每种情况。也许你在谈论一个 Dumb Component ,比如ui-gmap-google-map
directive可能有很多绑定,例如:
<ui-gmap-google-map
center="map.center"
zoom="map.zoom"
dragging="map.dragging"
bounds="map.bounds"
events="map.events"
options="map.options"
pan="true"
control="map.control">
</ui-gmap-google-map>
在这种情况下使用这种方法是完全可以接受和正常的,即使它有例如子组件和翻译区域等替代方案。
但是,如果你在谈论一个智能组件,比如一个页面组件指令,它上面有太多的绑定,看起来组件不是那么聪明,它依赖于过多的绑定住。
关于绑定的注意事项:根据你已经举例说明的函数参数情况,对于绑定应用相同的规则,以保持函数更负责任,并且你可以使它变得纯粹。另一方面,组件需要具有可靠且单一的职责,因此绑定是履行其职责所需的参数。
因此,大量的绑定(或参数)可能是一个不那么负责任的组件的标志,但它不是问题的绑定号,是垃圾设计的组件;