我的設計模式之路

2021-08-29 20:56:21 字數 2342 閱讀 2194

之前學了設計模式,但是總感覺只是表面上的學,當時看懂了,但是沒有實際使用,過了不久自己就忘了,最近1個月自己帶領乙個小組去開發新專案,框架什麼都是自己懵懵懂懂第一次搭建,其中複製貼上以及重複的函式太多,導致我想再深入的學習設計模式以便我在工作中能用到,使我的**看起來更健壯。

用**方式實現單例模式

var

creatediv

=function

(html)

creatediv.prototype.

init

=function()

var proxysingletoncreatediv =

(function()

return instance

}})()

var a =

newproxysingletoncreatediv

('sven1'

)var b =

newproxysingletoncreatediv

('sven2'

)alert

(a===b)

單例模式最終版

"loginbtn"

>

222<

/button>

// var obj ;

// if(!obj)

vargetsingle

=function

(fn)

}var

createliginlayer

=function()

var createsingleloginlayer;if(

!createsingleloginlayer)

document.

getelementbyid

('loginbtn').

onclick

=function()

<

/script>

用策略模式減少if語句的使用

最近在專案有很多地方需要判斷,一直在想能不能不寫那麼多if … else…後來在策略模式中還真找到了方法。

var btn=

function

mypath

(temp)

var res =

mypath

(temp1)

如何判斷2個陣列是否相等?

var

iterator

=function

(obj)

varisdone

=function()

vargetcurritem

=function()

;return

}var

compare

=function

(iterator1 , iterator2)

while

(!iterator1.

isdone()

&&!iterator2.

isdone()

) iterator1.

next()

; iterator2.

next()

;}console.

log(

"2個陣列相等")}

var iterator1 =

iterator([

1,2,

3])var iterator2 =

iterator([

1,2,

4])compare

(iterator1,iterator2)

有3個函式分別表示不同瀏覽器的上傳方式,我們通過迭代器模式來判斷哪個函式可以用。不能使用的函式會返回false ,咱們的主函式 interatoruploadobj中遇到判斷不是false的那個函式,會返回該函式。

var

getactiveuploadobj

=function()

catch

(e)}

vargetflashuploadobj

=function()

return

false

}var

getformuploadobj

=function()

varinteratoruploadobj

=function()

}}var uploadobj =

interatoruploadobj

(getactiveuploadobj,getflashuploadobj,getformuploadobj)

;

我的設計模式之路 單例模式

單例模式也稱作為單子模式,更多的也叫做單體模式。為軟體設計中較為簡單但是最為常用的一種設計模式。下面是維基百科對單例模式的介紹 在應用單例模式時,生成單例的類必須保證只有乙個例項的存在,很多時候整個系統只需要擁有乙個全域性物件,才有利於協調系統整體的行為。比如在整個系統的配 置檔案中,配置資料有乙個...

我的設計模式學習之路2 工廠模式

所謂簡單工廠模式是類的建立模式,是由乙個工廠物件決定建立出哪 一種產品類的例項。角色 工廠類角色 在客戶端的直接呼叫建立產品,乙個具體類,可以根據傳入的引數不同返同不同的例項。抽象產品角色 乙個介面,定義了具體產品所受的規範,即相同的形為。具體產品角色 工廠類角色所需建立的類,乙個具體類或多個。1....

我的設計模式學習之路1 單例模式

單例模式的特點 一.自動初始化 二.只有乙個例項 物件 三.允許整個系統訪問自己 四.私有的構造方法,不能被繼承 類圖 類圖用的是staruml這款軟體畫的,有興趣的可以用用,挺好用的 package com.service public class singleton public static ...