JavaScript設計模式-適配器模式

定義

Adapter,將一個類(對象)的接口(方法或者屬性)轉化爲另外一個接口,以知足用戶需求,使類(對象)之間接口的不兼容問題經過適配器得以解決javascript

生活:

現實中咱們一個手機充電線 能夠用一個轉接頭去給各類手機充電css

準備

1)須要適配的類Adaptee前端

2)適配器Adapter java

3)目標接口Target
優化

var obj = {
			name: "你我貸",
			job: "前端"
		}
		function Person() {

		}
		var person = new Person()
		person.showInfo = function (name,job) {
			console.log(name + ' is ' + name + ' and job is ' + job);
		}
		person.showInfo(obj.name,obj.job);
                //你我貸 is 你我貸 and job is 前端

複製代碼


jQuery中的適配器

上面提到的適配器寫法只是表現了適配器是一個什麼樣的東西,但實際項目中不會出現這樣的代碼。咱們以jQuery中的一個API爲例,說說實際應用中的適配器模式的使用方法。ui

在jQuery樣式相關的API中,最方便使用的就是css()了,這個接口是把setget的功能合二爲一了:spa

// 既能夠像這樣調用,取得opacity值
$('.elem').css('opacity');

// 也能夠像這樣,設置opacity值
$('.elem').css({'opacity': '0.9'});複製代碼

適用場景

適配器不會去改變實現層,那不屬於它的職責範圍,它干涉了抽象的過程。外部接口的適配可以讓同一個方法適用於多種系統。code

若是內部的實現出現了問題,須要動手術解決的話,那就不該該使用適配器了,由於那只是治標不治本的方法,反而會增長代碼的複雜度。對實現進行全面優化的帶來的是真正的改善。而若是實現層的問題不大,要解決一部分適配問題的話,適配器模式就是很好的選擇了。對象

相關文章
相關標籤/搜索