面向切面編程

面向切面編程也稱AOP,主要作用是將與核心業務邏輯無關的功能抽離出來,以動態織入的方式摻入業務邏輯模塊中。如日誌記錄功能等。可以保持業務邏輯的純淨,高內聚性;便於複用日誌模塊等

  • 裝飾器模式
    給對象動態添加職責(即用即付)的方式爲裝飾器模式
    實現一個插件式的表單驗證:校驗+提交
    一般實現:
    function formSubmit(obj){
    	const {tel,name} = obj
    	if(!!tel){
    		console.log('手機號不能爲空')
    		return false
    	}
    	if(!!name){
    		console.log('用戶名不能爲空')
    		return false
    	}
    	ajax('https://xxx.com/login',obj)
    }
    
    裝飾器實現:
    	function validForm(obj){
    		const {tel,name} = obj
    		if(!!tel){
    			console.log('手機號不能爲空')
    			return false
    		}
    		if(!!name){
    			console.log('用戶名不能爲空')
    			return false
    		}
    	}
    	function postForm(){
    		ajax('https://xxx.com/login',obj)
    	}
    	function before(beforeFn,fn){
    		return function mixFn(...rest){
    			if(!beforeFn.apply(this,reset)){
    				return false
    			}
    			return fn.apply(this,reset)
    		}
    	}
    	const formSubmit = beforeFn(validForm,postFrom)
    
發佈了81 篇原創文章 · 獲贊 66 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章