0

我最近更新了我的 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;
} () );
4

2 回答 2

2

您可能会冒着与其他开发人员不一样的风险,但这并不意味着您的代码不那么专业。使用最适合您的项目的方法。如果它对你想要做的事情来说太过分了,不要使用它。

于 2012-04-13T17:22:37.720 回答
1

我能看到这样做的唯一一点是隔离由实例化引起的故障。

依赖注入的目的是促进松耦合。在你的 JS 代码中是否需要这个我会说很大程度上取决于你的 JS 代码的范围;即你是在写一个 JS 框架,还是在操作几个 div?

网络开发公司会发现你的工作很专业吗?这取决于。你是否无缘无故地将 DI 添加到你的代码中,以便你看起来很酷,或者它有什么真正的理由存在?专业的网络公司会知道其中的区别。

于 2012-04-13T17:27:53.100 回答