我最近更新了我的 PHP 库以使用依赖注入模式。我不是在我的类中实例化对象,而是在一个名为 ObjectMaker 的类中实例化它们,并通过对象“getter”函数传递对象。
我能看到这样做的唯一一点是隔离由实例化引起的故障。
但由于我只是一个人,而且我没有进行任何单元测试,我认为更新我的 JavaScript 以使用依赖注入模式没有任何意义。
这些依赖不会给我带来任何问题。
我可以不使用它并仍然打电话给我的 JavaScript 专业人员吗?
我不会通过使用它来获得任何性能提升,只会看到更多抽象代码(创建对象的对象)——我喜欢一个没有太多“模式”使用的简单对象模型。这是风格偏好正确吗?
问题?
我可以不使用依赖注入模式而仍然调用我的 JavaScript 专业级别吗?
/**
*Control
*/
var Control = ( function ()
{
var Control = function ( type )
{
this.TIME = 4000;
this.form_element = document.getElementById( type ),
this.response_element = document.getElementById( type + '_response' );
this.text_object = new Text( this.form_element ),
this.message_object = new Message( this.response_element ),
this.effects_object= new Effects( this.response_element );
};
Control.prototype.invoke = function( )
{
if( Global.validate_input_on === 1 )
{
if( !this.text_object.checkEmpty() )
{
this.message_object.display( 'empty' );
this.effects_object.fade( 'down', this.TIME );
return false;
}
if( type === 'signup' && !this.text_object.checkPattern( 'name' ) )
{
this.message_object.display( 'name' );
this.effects_object.fade( 'down', this.TIME );
return false;
}
if( !this.text_object.checkPattern( 'email' ) )
{
this.message_object.display( 'email' );
this.effects_object.fade( 'down', this.TIME );
return false;
}
if( !this.text_object.checkPattern( 'pass' ) )
{
this.message_object.display( 'pass' );
this.effects_object.fade( 'down', this.TIME );
return false;
}
}
var response_element = this.response_element;
AjaxNew.repeatUse( ajaxSerialize( this.form_element ) + '&ajax_type=' + type + '_control', function( server_response_text ) { ajaxType( server_response_text, this.response_element, 'respond' ); } );
};
Control.in = function()
{
new Control( 'signin' ).invoke();
};
Control.up = function()
{
new Control( 'signup' ).invoke();
};
Control.out = function()
{
AjaxNew.repeatUse( '&ajax_type=ControlSignOut', function( server_response_text ) { ajaxType( server_response_text, 0, 'simple' ); } );
};
Control.try = function()
{
AjaxNew.repeatUse( '&ajax_type=ControlTryIt', function( server_response_text ) { ajaxType( server_response_text, 0, 'simple' ); } );
};
return Control;
} () );