中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

購物網(wǎng)站建設(shè)包括哪些做電商需要學(xué)哪些基礎(chǔ)

購物網(wǎng)站建設(shè)包括哪些,做電商需要學(xué)哪些基礎(chǔ),綿陽東原建設(shè)工程有限公司網(wǎng)站,wordpress更改文件夾Go和Java實(shí)現(xiàn)享元模式 下面通過一個(gè)實(shí)例來說明享元模式的使用。 1、享元模式 享元模式主要用于減少創(chuàng)建對(duì)象的數(shù)量,以減少內(nèi)存占用和提高性能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它提 供了減少對(duì)象數(shù)量從而改善應(yīng)用所需的對(duì)象結(jié)構(gòu)的方式。 享元模式…

Go和Java實(shí)現(xiàn)享元模式

下面通過一個(gè)實(shí)例來說明享元模式的使用。

1、享元模式

享元模式主要用于減少創(chuàng)建對(duì)象的數(shù)量,以減少內(nèi)存占用和提高性能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它提

供了減少對(duì)象數(shù)量從而改善應(yīng)用所需的對(duì)象結(jié)構(gòu)的方式。

享元模式嘗試重用現(xiàn)有的同類對(duì)象,如果未找到匹配的對(duì)象,則創(chuàng)建新對(duì)象。

  • 意圖:運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象。

  • 主要解決:在有大量對(duì)象時(shí),有可能會(huì)造成內(nèi)存溢出,我們把其中共同的部分抽象出來,如果有相同的業(yè)務(wù)請(qǐng)

    求,直接返回在內(nèi)存中已有的對(duì)象,避免重新創(chuàng)建。

  • 何時(shí)使用:1、系統(tǒng)中有大量對(duì)象。 2、這些對(duì)象消耗大量?jī)?nèi)存。 3、這些對(duì)象的狀態(tài)大部分可以外部化。 4、

    這些對(duì)象可以按照內(nèi)蘊(yùn)狀態(tài)分為很多組,當(dāng)把外蘊(yùn)對(duì)象從對(duì)象中剔除出來時(shí),每一組對(duì)象都可以用一個(gè)對(duì)象來

    代替。 5、系統(tǒng)不依賴于這些對(duì)象身份,這些對(duì)象是不可分辨的。

  • 如何解決:用唯一標(biāo)識(shí)碼判斷,如果在內(nèi)存中有,則返回這個(gè)唯一標(biāo)識(shí)碼所標(biāo)識(shí)的對(duì)象。

  • 關(guān)鍵代碼:用 HashMap 存儲(chǔ)這些對(duì)象。

  • 應(yīng)用實(shí)例:1、JAVA 中的 String,如果有則返回,如果沒有則創(chuàng)建一個(gè)字符串保存在字符串緩存池里面。 2、

    數(shù)據(jù)庫的連接池。

  • 優(yōu)點(diǎn):大大減少對(duì)象的創(chuàng)建,降低系統(tǒng)的內(nèi)存,使效率提高。

  • 缺點(diǎn):提高了系統(tǒng)的復(fù)雜度,需要分離出外部狀態(tài)和內(nèi)部狀態(tài),而且外部狀態(tài)具有固有化的性質(zhì),不應(yīng)該隨著

    內(nèi)部狀態(tài)的變化而變化,否則會(huì)造成系統(tǒng)的混亂。

  • 使用場(chǎng)景:1、系統(tǒng)有大量相似對(duì)象。 2、需要緩沖池的場(chǎng)景。

  • 注意事項(xiàng):1、注意劃分外部狀態(tài)和內(nèi)部狀態(tài),否則可能會(huì)引起線程安全問題。 2、這些類必須有一個(gè)工廠對(duì)

    象加以控制。

  • 適用性:

    一個(gè)應(yīng)用程序使用了大量的對(duì)象。

    完全由于使用大量的對(duì)象,造成很大的存儲(chǔ)開銷。

    對(duì)象使大多數(shù)狀態(tài)都可變?yōu)橥獠繝顟B(tài)。

    如果刪除對(duì)象的外部狀態(tài),那么可以使相對(duì)較少的共享對(duì)象取代很多組對(duì)象。

    應(yīng)用程序不依賴于對(duì)象標(biāo)識(shí),由于 Flyweight 對(duì)象可以被共享,對(duì)于概念上明顯有別的對(duì)象,標(biāo)識(shí)測(cè)試將返回

    真值。

2、Go實(shí)現(xiàn)享元模式

package flyweight// ========== Flyweight ==========
type Flyweight interface {Action(arg int)
}
package flyweightimport "fmt"// ========== FlyweightImpl ==========
type FlyweightImpl struct {
}func (flyweightImpl *FlyweightImpl) Action(arg int) {fmt.Println("參數(shù)值: ", arg)
}
package flyweight// ========== FlyweightFactory ==========
type FlyweightFactory struct {flyweights map[string]Flyweight
}func NewFlyweightFactory() FlyweightFactory {return FlyweightFactory{flyweights: map[string]Flyweight{},}
}func (flyweightFactory *FlyweightFactory) GetFlyweight(key string) Flyweight {if flyweightFactory.flyweights[key] == nil {flyweightFactory.flyweights[key] = new(FlyweightImpl)}return flyweightFactory.flyweights[key]
}func (flyweightFactory *FlyweightFactory) GetSize() int {return len(flyweightFactory.flyweights)
}
package mainimport ("fmt". "proj/flyweight"
)func main() {flyWeight := NewFlyweightFactory()fly1 := flyWeight.GetFlyweight("a")fly1.Action(1)fly2 := flyWeight.GetFlyweight("a")fmt.Println(fly1 == fly2)fly3 := flyWeight.GetFlyweight("b")fly3.Action(2)fly4 := flyWeight.GetFlyweight("c")fly4.Action(3)fly5 := flyWeight.GetFlyweight("d")fly5.Action(4)fmt.Println(flyWeight.GetSize())
}
# 輸出
參數(shù)值:  1
true
參數(shù)值:  2
參數(shù)值:  3
參數(shù)值:  4
4

3、Java實(shí)現(xiàn)享元模式

package flyweight;// ========== Flyweight ==========
public interface Flyweight {void action(int arg);
}
package flyweight;// ========== FlyweightImpl ==========
public class FlyweightImpl implements Flyweight {@Overridepublic void action(int arg) {System.out.println("參數(shù)值: " + arg);}
}
package flyweight;import java.util.HashMap;
import java.util.Map;// ========== FlyweightFactory ==========
public class FlyweightFactory {private final static Map<String,Flyweight> FLY_WEIGHTS = new HashMap<>();public FlyweightFactory(String arg) {FLY_WEIGHTS.put(arg, new FlyweightImpl());}public static Flyweight getFlyweight(String key) {if (FLY_WEIGHTS.get(key) == null) {FLY_WEIGHTS.put(key,new FlyweightImpl());}return FLY_WEIGHTS.get(key);}public static int getSize() {return FLY_WEIGHTS.size();}
}
package flyweight;public class Test {public static void main(String[] args) {Flyweight fly1 = FlyweightFactory.getFlyweight("a");fly1.action(1);Flyweight fly2 = FlyweightFactory.getFlyweight("a");System.out.println(fly1 == fly2);fly2.action(2);Flyweight fly3 = FlyweightFactory.getFlyweight("b");fly3.action(3);Flyweight fly4 = FlyweightFactory.getFlyweight("c");fly4.action(4);Flyweight fly5 = FlyweightFactory.getFlyweight("d");fly5.action(5);System.out.println(FlyweightFactory.getSize());}
}
# 輸出
參數(shù)值: 1
true
參數(shù)值: 2
參數(shù)值: 3
參數(shù)值: 4
參數(shù)值: 5
4
http://www.risenshineclean.com/news/7045.html

相關(guān)文章:

  • 做的好的農(nóng)產(chǎn)品網(wǎng)站肇慶疫情最新情況
  • 公司做網(wǎng)站留言板seo綜合查詢什么意思
  • 像淘寶類別網(wǎng)站怎么做谷歌優(yōu)化是什么意思
  • 推薦一個(gè)可以做ppt的網(wǎng)站雅虎搜索引擎
  • 做環(huán)評(píng)需要關(guān)注哪些網(wǎng)站企業(yè)網(wǎng)站推廣渠道
  • 具有營(yíng)銷型網(wǎng)站的公司網(wǎng)站域名在哪里查詢
  • 門戶網(wǎng)站建設(shè)招標(biāo)文件軟件工程培訓(xùn)機(jī)構(gòu)哪家好
  • 哪個(gè)網(wǎng)站可以做申論真題資源搜索引擎搜索神器網(wǎng)
  • 陜西交通建設(shè)集團(tuán)網(wǎng)站網(wǎng)站建設(shè)費(fèi)用
  • 途牛企業(yè)網(wǎng)站建設(shè)百度推廣效果怎樣一天費(fèi)用
  • 網(wǎng)站建設(shè)公司生存百度收錄提交入口
  • 貿(mào)易公司 網(wǎng)站 扶持搜索引擎優(yōu)化分析
  • 實(shí)業(yè)+東莞網(wǎng)站建設(shè)網(wǎng)絡(luò)seo推廣
  • 重慶網(wǎng)站建設(shè)制作設(shè)計(jì)企業(yè)站seo案例分析
  • 東平網(wǎng)站建設(shè)公司網(wǎng)頁制作教程
  • 查詢網(wǎng)站備案密碼是什么免費(fèi)網(wǎng)站服務(wù)器安全軟件下載
  • 自己做網(wǎng)站賣東西怎么樣西安seo服務(wù)商
  • 招聘網(wǎng)站做招聘顧問百度風(fēng)云榜小說排行榜
  • 福田做網(wǎng)站seo關(guān)鍵詞優(yōu)化推廣報(bào)價(jià)表
  • 可以免費(fèi)做調(diào)查問卷的網(wǎng)站常見的網(wǎng)絡(luò)營(yíng)銷工具有哪些
  • 網(wǎng)站開發(fā)廣告宣傳微信管理軟件
  • 做別人一樣的網(wǎng)站百度推廣圖片
  • 宿州網(wǎng)站建設(shè)設(shè)計(jì)公司最近一周的重大新聞
  • b2b網(wǎng)站模板saas建站平臺(tái)
  • 西安至成網(wǎng)站建設(shè)公司寧波seo外包代運(yùn)營(yíng)
  • 做b2b比較好的網(wǎng)站有哪些360搜索引擎入口
  • 全面的聊城網(wǎng)站建設(shè)獲客軟件排名前十名
  • 山西省政府網(wǎng)站建設(shè)百度競(jìng)價(jià)推廣后臺(tái)
  • 淘寶客做連接網(wǎng)站seo工具大全
  • 廣州高端做網(wǎng)站百度網(wǎng)首頁登錄入口