• <menu id="gyiem"><menu id="gyiem"></menu></menu>
  • <menu id="gyiem"><code id="gyiem"></code></menu>

    Java設計模式(十一) 享元模式

    原創文章,轉載請務必將下面這段話置于文章開頭處(保留超鏈接)。
    本文轉發自技術世界原文鏈接 http://www.luozeyang.com/design_pattern/flyweight/

    享元模式介紹

    享元模式適用場景

    面向對象技術可以很好的解決一些靈活性或可擴展性問題,但在很多情況下需要在系統中增加類和對象的個數。當對象數量太多時,將導致對象創建及垃圾回收的代價過高,造成性能下降等問題。享元模式通過共享相同或者相似的細粒度對象解決了這一類問題。

    享元模式定義

    享元模式(Flyweight Pattern),又稱輕量級模式(這也是其英文名為FlyWeight的原因),通過共享技術有效地實現了大量細粒度對象的復用。

    享元模式類圖

    享元模式類圖如下
    FlyWeight Pattern Class Diagram

    享元模式角色劃分

    • FlyWeight 享元接口或者(抽象享元類),定義共享接口
    • ConcreteFlyWeight 具體享元類,該類實例將實現共享
    • UnSharedConcreteFlyWeight 非共享享元實現類
    • FlyWeightFactory 享元工廠類,控制實例的創建和共享

    內部狀態 vs. 外部狀態

    • 內部狀態是存儲在享元對象內部,一般在構造時確定或通過setter設置,并且不會隨環境改變而改變的狀態,因此內部狀態可以共享。
    • 外部狀態是隨環境改變而改變、不可以共享的狀態。外部狀態在需要使用時通過客戶端傳入享元對象。外部狀態必須由客戶端保存。

    享元模式實例解析

    本文代碼可從作者Github下載

    享元接口,定義共享接口

    1
    2
    3
    4
    5
    6
    7
    package com.jasongj.flyweight;

    public interface FlyWeight {

    void action(String externalState);

    }

    具體享元類,實現享元接口。該類的對象將被復用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    package com.jasongj.flyweight;

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    public class ConcreteFlyWeight implements FlyWeight {

    private static final Logger LOG = LoggerFactory.getLogger(ConcreteFlyWeight.class);

    private String name;

    public ConcreteFlyWeight(String name) {
    this.name = name;
    }

    @Override
    public void action(String externalState) {
    LOG.info("name = {}, outerState = {}", this.name, externalState);
    }

    }

    享元模式中,最關鍵的享元工廠。它將維護已創建的享元實例,并通過實例標記(一般用內部狀態)去索引對應的實例。當目標對象未創建時,享元工廠負責創建實例并將其加入標記-對象映射。當目標對象已創建時,享元工廠直接返回已有實例,實現對象的復用。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package com.jasongj.factory;

    import java.util.concurrent.ConcurrentHashMap;

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import com.jasongj.flyweight.ConcreteFlyWeight;
    import com.jasongj.flyweight.FlyWeight;

    public class FlyWeightFactory {

    private static final Logger LOG = LoggerFactory.getLogger(FlyWeightFactory.class);

    private static ConcurrentHashMap<String, FlyWeight> allFlyWeight = new ConcurrentHashMap<String, FlyWeight>();

    public static FlyWeight getFlyWeight(String name) {
    if (allFlyWeight.get(name) == null) {
    synchronized (allFlyWeight) {
    if (allFlyWeight.get(name) == null) {
    LOG.info("Instance of name = {} does not exist, creating it");
    FlyWeight flyWeight = new ConcreteFlyWeight(name);
    LOG.info("Instance of name = {} created");
    allFlyWeight.put(name, flyWeight);
    }
    }
    }
    return allFlyWeight.get(name);
    }

    }

    從上面代碼中可以看到,享元模式中對象的復用完全依靠享元工廠。同時本例中實現了對象創建的懶加載。并且為了保證線程安全及效率,本文使用了雙重檢查(Double Check)。

    本例中,name可以認為是內部狀態,在構造時確定。externalState屬于外部狀態,由客戶端在調用時傳入。

    享元模式分析

    享元模式優點

    • 享元模式的外部狀態相對獨立,使得對象可以在不同的環境中被復用(共享對象可以適應不同的外部環境)
    • 享元模式可共享相同或相似的細粒度對象,從而減少了內存消耗,同時降低了對象創建與垃圾回收的開銷

    享元模式缺點

    • 外部狀態由客戶端保存,共享對象讀取外部狀態的開銷可能比較大
    • 享元模式要求將內部狀態與外部狀態分離,這使得程序的邏輯復雜化,同時也增加了狀態維護成本

    享元模式已(未)遵循的OOP原則

    已遵循的OOP原則

    • 依賴倒置原則
    • 迪米特法則
    • 里氏替換原則
    • 接口隔離原則
    • 單一職責原則
    • 開閉原則

    未遵循的OOP原則

    • NA

    Java設計模式系列

    郭俊 Jason wechat
    歡迎關注作者微信公眾號【大數據架構】
    您的贊賞將支持作者繼續原創分享
    速赢彩app pj88vv.com | 6868zz.cc | www.amdc0007.com | 3178w.com | www.sb60001.com | www.171880.com | www.544442.com | www.316477.com | www.9068ww.com | www.500823.com | www.900652.com | www.031059.com | www.9988619.com | 66300vip16.com | www.jing6444.com | 11dd8331.com | www.7334g.com | 1463d.com | www.995223.com | 2214xx.com | www.646869.com | 67877o.com | www.5095i.com | 7777ag2.com | www.379477.com | www.006074.com | 0747uu.com | www.pj5958.com | 1106.com | www.36166hh.com | 667766w.com | www.888258.com | www.p30226.com | 386kzb.com | www.tz1555.com | 52688c.com | www.0622ccc.com | t888c.com | www.7782i.com | www.sb8002.com | www.375791.com | www.57418.com | 3775799.com | www.933436.com | 2334vip9.com | www.595121.com | www.rycp665.com | 22ss8332.com | www.js9996.com | bzl995.com | www.009ac.com | www.3643b.com | 6220zz.com | www.9737nn.com | pj88ss.com | www.33598n.com | www.bl45.com | 3640t.com | www.2021c.com | 1077nn.com | www.731091.com | www.s4158.com | 500000798.com | www.84499k.com | www.682844.com | 77727720.com | www.3824.com | www.8851i.com | 00773b.com | www.685029.com | 0747i.com | www.665609.com | www.503811.com | 5360a.com | www.62118c.com | www.vns0708.com | 188qq333.com | www.m63568.com | 32355rr.com | bo9.co | www.11888js.com | 2767o.com | www.375477.com | www.c5c88.com | p8381.com | www.582914.com | www.9c345.com | wx2277.com | www.799417.com | www.jjjj007.com | 1104006.com | www.810706.com | www.3033c.com | 32666k.com | www.577513.com | www.19019t.com | 234904.com | www.223335.com | www.hg8dd.com | 55818u.com | www.055123.cc | www.am13579.com | 8866vn77.com | 5855ll.com | www.55111133.com | www.903253.com | 66783.com | www.qucp7.com | www.508987.com | 33ff8332.com | www.52072o.com | www.8905v.com | www.85770q.com | 7779r.cc | www.514611.com | www.35252g.com | www.hg2083.com | 30171133.com | www.cp369.net | www.68277333.com | 8901o.com | 1775y.com | www.0270u.com | www.y186w.com | 3242g.com | www.504733.com | www.620932.com | www.63877q.com | 8xj.vip | www.318097.com | www.3w444.com | www.hg888.me | 3467c.am | 4346.com | www.506969.com | www.6880ww.com | www.3643b.com | 7508r.com | www.355241.com | www.297555.com | www.00037b.com | vvv01234.com | 500000511.com | www.954321k.com | www.rf0388.com | df8x.com | 26668h.com | www.659957.com | www.56011z.com | www.xb0021.com | 40661115.com | 6868003.cc | www.8039c.com | www.58665f.com | 79889b.com | 3024z.com | www.775740.com | www.86339m.com | www.pj5955.com | 99151x.com | 3233yl.com | www.420611.com | www.89777s.com | www.333777k.com | 54141188.com | 66671u.com | xg5111.com | www.371w.cc | www.377666i.com | www.yy6656.com | 6868gg.cc | afcp04.com | www.167356.com | www.88266t.com | www.hg98091.com | www.7610679.com | 8977yy.com | 566670099.com | www.759585.com | www.110503.com | www.hg4480.com | www.d0686.com | 3568ww.com | feicai0335.com | www.3126j.com | www.7720p.com | 38848.com | 88jxf.com | www.501274.com | www.50051y.com | www.6687g.com | www.4887999.com | www.0853g.com | 992222j.com | ff7742.com | qzone6.com | www.153918.com | www.hx6626.com | www.9646s.com | www.4996cd.com | www.456099.com | www.bet3650314.com | qmbc9.com | 8535.com | 5099hh.com | wap.pj5556.com | www.361550.com | www.555xm.cc | www.8656.cc | www.33678ss.com | www.jy959.com | www.v15552.com | www.long260.com | 28288m.com | 3775j.com | i1915i.com | 6766cc.com | www.306922.com | www.99clf.com | www.sx139971.com | www.3846gg.com | www.5146z4.com | www.06263.com | www.283804.com | 55nn8331.com | 28839b.com | 4488r.com | 34p35.com | 7792h.com | 18775b.com | www.399957.com | www.862803.com | www.8039z.com | www.60798.com | www.p63568.com | www.f3410.com | www.4136m.com | www.9788t.com | www.143098.com | www.js05888.com | www.44466638.com | www.wn2088.com | 65562299.com | vnsr11888.com | 33115xx.com | 3245q.com | 3308a.com | 61326633.com | 6118i.com | 655661133.com | 0638.net | 8577q.cc | www.zunbao19.com | www.4123nn.com | www.ab943.com | 633248.com | 6176007.com | 115944.com | 5060988.com | www.bmw9964.com | www.6033f.com | 1489r.com | 1331l.com | www.11105.tv | www.56520e.com | www.yh6099.com | www.206365.com | www.836077.com | www.cblftib.com | www.21365pp.com | www.362811.com | www.vns343.com | www.hg66997.cc | www.xpj8337.com | www.232t.com | www.e4042.com | www.qmc0033.com | www.c5c99.com | www.f92776.com | www.vns6606.com | www.m80288.com | www.369403.com | 28839o.com | 3121nn.com | 5622t.com | www.xhtd03.com | www.00618k.com | www.ytvip98.com | www.xh0077.com | www.suncity12.com | www.8839zz.com | www.469705.com | www.s63568.com | www.bet73x.com | www.5095e.com | www.963220.com | www.348077.com | 0015tt.com | 1489.com | 13222s.com | 37570.com | www.a8a8567.com | www.55268rr.com | www.411036.com | www.twcp05.com | www.q32031.com | www.pj99m.com | www.26199.com | www.669634.com | 97297l.com | 5369i.com | 5360pp.com | 0245u.com | 58802p.com | www.2566h5.com | www.334579.com | www.72345.com | www.ylvip.tv | www.820380.com | www.36166a.com | 2698i.com | 350833.com | zhcp05.com | www.4107r.com | www.567771.com | www.10999l.com | www.9522888.com | www.820535.com | bet056vip.com | 3y5500.com | 00bb8332.com | www.h6635.net | www.ouzhou7.com | www.4058oo.com | www.83033m.com | www.444083.com | bojue009.com | ibc88.com | www.8494b.com | www.90903.com | www.91779s.com | www.39500l.com | www.444083.com | 11018c.com | 67890v.com | www.a3a000.cc | www.333980.com | www.288582.com | www.787zf.com | www.003675.com | 9506a.com | 9149b.com | www.3844b.com | www.26123gg.com | www.57578j.com | www.196556.com | bj799.com | xpj888c.com | www.20161122.com | www.10999m.com | www.61233k.com | www.314377.com | 57157r.com | 88770.com | www.446677.com | www.20000.cc | www.874110.com | kk38648.cc | 8547c.com | www.888vip7.com | www.704909.com | www.99fzc.com | 6699734.com | 850775.com | www.88837x.com | www.519862.com | www.hr0888.com | vns7.vip | www.wanmei09.com | www.50999g.com | www.3416r.com | feicai0831.com | 365bet800.com | www.188448.com | www.2418o.com | 89777s.com | 3775v.com | www.81849l.com | www.380870.com | www.348677.com | 80850l.com | www.3459s.com | www.63606d.com | www.584211.com | 09090524.com | www.xpj88003.com | www.4102w.com | www.302029.com | 40033f.com | www.hg66997.cc | www.89777i.com | o8381.com | 2383qq.com | www.msc-88msc.com | www.35155k.com | 93996a.com | 118888o.com | www.sha2288.com | www.743633.com | 77463.com | www.32666j.com | www.089638.com | 29918dd.com | 01885x.com | www.h4042.com | www.669by.com | hfgszc580.com | www.719365.com | www.1067777.com | www.89894f.com | 11005k.com | www.a81a.cc | www.cp7768.com | 809h20.com | www.hg0450.com | www.7714p.com | pu22pu22.com | www.vns0488.com | www.667700.com | 4812333.com | 4635511.com | www.pjc44.vip | 22rr8332.com | 3544e.com | www.w84i.com | 2455b.com | 3844nn.com | www.99552uu.com | 1466b.com | w2894.com | www.9997048.com | x33j.vip | www.v17888.com | www.hg16688.com | 875856.com | www.54776.com | www.8s44.com | 728055.com | www.358888f.com | www.26163y.com | 496ii.com | www.46678.com | www.936250.com | za999.net | www.38345c.com | www.178153.com | 2306l.com | www.087b.com | 9479a6.com | www.v15502.com | www.0014f.com | 3662r.com | www.450098.com | www.010956.com | 1483hh.com | www.766777.cc | 59599o.com | www.ytgj444.com | www.926013.com | 3685c.com | www.ag0345.com | 51200hh.com | www.21365yy.com | www.8667g.com | 3467l.am | www.7737ff.com | feicai0892.com | www.bb8005.com | www.802533.com | 83086h.com | www.zzyl67.com | ly88888884.com | www.5566800.com | www.177564.com | www.4759oo.com | www.49956l.com | am661.cc | www.hg77720.com | 1145.com | www.678js444.com | 07326666.com | www.4567749.com | www.33112v.com | www.9374s.com | www.105ak.com | 00443015.com | www.jl58qp.com | uc03.cc | www.417920.com | dd3336.com | www.5377msc.com | 0109js.com | www.9380l.com | www.550164.com | www.ylg9939.com | www.022j.cc | 83377y.com | www.26163e.com | 272m.net | www.77055.com | 6261p.com | www.99094g.com | hc333.vip | www.9464003.com | 33599ff.com | www.38138h.com | 30175500.com | www.770202.com | 00778h.com | www.beb111.org | bwin910.co | www.wnsr5550.com | 5002r.com | www.js9615.com | xpj98618.com | www.444412.com | 56333.com | www.66.42.42.157 | sha145.com | www.92220358.com | www.50788i.com | www.16297777.com | 00048a.com | www.946466.com | 234917.com | www.477suncity.com | 00787.com | www.yh8396.com | 80850v.com | www.7777yh.com | 59963.la | www.68993269.com | dh7022.com | www.66621q.com | 65005a.com | www.093wy.com | www.55555t.com | www.799046.com | www.3653306.com | www.394811.com | www.hg8801.com | vv3396.com | www.1200msc.com | 00229193.com | www.588860.com | y7065.com | www.7239v.com | 2247f.com | www.826927.com | www.77537y.com | 2757j.com | www.bai5533.com | hb1432.com | www.99552.com | 3522h.vip | www.50024c.com | 00778p.com | www.493326.com | www.4719cc.com | 22117c.com | www.1118084.com | 32666u.com | www.96386x.com | 58588h.com | www.342177.com | www.277577.com | 18775i.com | www.1113yl.com | wlb999.com | www.876747.com | www.xpj98k.com | 20833g.com | www.http://448378.com/ | 30019jj.com | www.11018.cc | www.00829y.com | 55818t.com | www.4996cz.com | 76886m.com | www.gocp3.com | www.65471188.com | 8892958.com | www.2566y3.com | 0033w.cc | www.88065e.com | www.682260.com | 4288n.com | www.9818.cc | www.pj7668.com | 01572.com | www.126a56.com | 3024t.com | www.86267i.com | www.99113g.com | b61653.com | www.985026.com | www.xh0077.com | 3936x.com | www.36788z.com | www.55268tt.com | aipin888.net | www.730555h.com | www.63260.com | 3089.com | www.5958113.com | www.6491y.com | 5004e.com | www.1764.com | www.wxr77.com | 33115m.com | www.86339f.com | 67629999.com | 55268.net | www.9187h.com | www.8520c.com | ww5443.com | www.4156.com | www.rbet3365.com | 5350r.com | www.068633.com | www.32126a.net | cz1366.com | www.9646v.com | www.718msc.com | 3144.cc | www.966083.com | www.693suncity.com | 8547b.com | www.452820.com | www.848777b.com | 28758l.com | 7141kk.com | www.550022.com | www.8694q.com | 3258t.com | www.74gcw.com | www.102149.com | 8977aa.com | www.83033u.com | www.d3846.com | www.j32126.cc | 20776644.com | www.007hy.cc | www.c44pp.com | 500000517.com | js395.com | www.4828.com | www.xb0027.com | 566777h.com | www.453552.com | www.j1432.com | www.936699.com | 5168cc.cc | www.cly6.com | www.58118e.com | dd76669.com | 01234j.com | www.5522f.cc | www.50054.com | 3245n.com | 88051.com | www.3416v.com | www.h948h.com | feicai0898.com | 188qq66.com | www.981jc.com | www.q3065.com | yun968.com | www.99094a.com | www.33588i.com | www.97060f.com | bcw3666.com | x8381.com | www.ybao6.com | www.xpj2040.com | www.hg44403.com | spj05.net | www.63606v.com | www.7830a.com | 3405dd.com | pjhunan.com | www.3301855.com | www.987125.com | iii8827.com | hga3094.com | www.911888aa.com | www.7225n.com | www.3459m.com | www.551727.com | www.258908.com | www.01678cp.com | yhguangxi.vip | 77885002.com | www.863630.com | www.2997779.com | www.4261199.com | 26668o.com | ttt67890.com | www.aj3383.com | www.69567d.com | www.68666e.com | 5589m.com | 6423.com | www.101220.com | www.99788l.com | www.661559.com | www.alpk8.com | 29918.com | 1458r.com | www.783386.com | www.278965.com | www.ya2019w.com | www.423550.com | www.3657z.com | kxmapp555.com | 9002p.com | www.652188.com | www.626902.com | www.597567a.com | www.123679.com | 3379rr.com | 37688u.com | tongfamr.com | www.cll168.com | www.196075.com | www.673888e.com | www.ylzz6662.com | 3202r.com | 553322EE.com | www.282555b.com | bg555666.com | hj1234.com | miyaonv.com | www.068639.com | www.09500w.com | www.357306.com | www.700hm.com | www.60088hg.com | wnsbc.com | u72227.com | 0600x.cc | www.150957.com | www.982jc.com | www.111158.com | www.8967w.com | www.152336.com | 4195k.com | 5219c.com | 55229193.com | 338499.com | www.559748.com | www.89969.cc | www.7240w.com | www.71071w.com | www.444714.com | www.40404688.com | 8036ss.com | 1466o.com | 1705g.com | 809044.com | www.50026e.com | www.799486.com | www.21202x.com | www.735518.com | www.80188v.com | www.97cp678.com | www.744suncity.com | www.88hggj.com | 2373d.com | puntbee.com | 6269qq.com | qq365q.com | 1086.com | 4048ccc.com | www.43131v.com | www.631259.com | www.57pk.cc | www.88266m.com | www.050881.com | www.4521w.com | www.00618f.com | www.393222.com | www.152336.com | www.3643f.com | www.vns0600.com | 537.cc | hg1338.com | 500000919.com | 54241133.com | 4955z.com | 0255.com | 40033q.com | 99909i.com | 3685g.com | 6423a.com | a61653.com | ll67890.com | 88894c.com | swty.com | 3245l.com | 97799g.com | 3242m.com | 386kzo.com | 44ydgj.com | 4441164.com | 3650580.com | www.90305e.com | www.177474.com | www.351957.com | www.401278.com | www.401274.com | www.472255.com | www.446769.com | www.470680.com | www.501206.com | www.501347.com | www.424988.com | www.356411.com | www.399049.com | www.364141.com | www.303053.com | www.132918.com | www.060899.com | 38989s.com | 46460524.com | 9007004.com | 8030s.com | 3304mm.com | dd3405.com | 08820011.com | 0805o.com | 86611a.com | bet28q.com | 667766h.com | 33115h.com | 54443g.com | www.512988.com | www.32666u.com | www.32666d.com | www.860389.com | www.c51jj.vip | www.8473r.com | www.2021t.com | www.665888.com | www.886498.com | www.81678g.com | www.1222ac.com | www.768997.com | www.lcw997.com | 5802oo.com | 53262u.com | 7570xxx.com | 4167z.com | hg77702.com | v9966.com | www.zq.hk | www.1007b.cc | www.305015.me | www.hs066.com | www.78680w.com | www.9646n.com | www.5086p.com | www.755804.com | www.76520i.com | 58222aa.com | 18775y.com | 66671l.com | vns300.net | www.39695q.com | www.hg3988.com | www.9cai.com | www.402997.com | www.77802p.com | www.962387.com | www.97655i.com | 1114661.com | youfa78.com | 28839r.com | www.63877o.com | www.518008.com | www.4212q.com | www.56011n.com | www.87498.com | www.515663.com | jixiang20.com | a2848.com | 25288n.com | www.333222z.com | www.2997701.com | www.26123ee.com | www.957004.com | www.c1395.com | www.53900o.com | 88535a.com | 61322222.com | www.ylg3333.com | www.amdc0009.com | www.9hg6668.com | www.954321y.com | www.891079.com | 69448833.com | 223536.com | 2267y.com | www.9679r.com | www.0849.com | www.708282.com | www.858899a.com | 61329999.com | a2848.com | 3379a.com | www.xpj88007.com | www.cp55.com | www.0004sc.com | www.763227.com | 22662007.com | uuu4255.com | www.849431.com | www.js504.com | www.116874.com | www.cpkk6.com | 0011886.com | 66287t.com | www.5699v.com | www.yt7488.com | www.78680o.com | www.cb7588.com | 3308b.com | 3416l.com | www.hg3569.com | www.28000b.com | www.68689z.com | www.33112a.com | 88119o.com | www.mgm8699.com | www.rk1177.com | www.99084400.com | www.348177.com | 3559kkk.com | 6220n.com | www.785888.com | www.8998799.com | www.386918.com | 56787jj.com | 4195p.com | www.118vv.com | www.sx1855.com | www.139630.com | sjg005.com | www.77yh765.com | www.4136a.com | www.2934a.com | 44488n.com | 76886l.com | www.amdc0005.com | www.5287.com | www.504033.com | 56988ll.com | www.4759ss.com | www.4694s.com | www.2408a.cc | 6033p.com | wfcp666777.com | www.662889.com | www.81233x.com | js395.com | bb38648.com | www.836690.com | www.97365.com | 56987zz.com | m72227.com | www.82508b.com | www.188jinbaobo.com | www.011225.com | xpj6162.com | www.wnsr4439.com | www.1434r.com | www.218195.com | 992222m.com | www.982333.com | www.vip4331.com | 1916q.com | 667766h.com | www.kj306.com | www.9478d.com | 7773847.com | www.0111js.com | www.h69096.com | www.579411.com | 35222nn.com | www.hg9801199.com | www.x88678.com | 8yth.com | 4379b.com | www.77vn777.com | www.616097.com | 4036333.com | www.hg763.com | www.16878o.com | 2237pay.com | 243d2.com | www.38138k.com | www.296233.com | 22442007.com | www.48968.com | www.fen08.com | c9.com | www.tyc855.com | www.76520z.com | luoma2008.com | www.ylhg4848.com | www.79095k.com | www.196039.com | 56744.com | www.s456x.com | www.910282.com | 4038.com | www.009959.com | www.hr6888.com | w69441100.com | www.38987.com | www.2875q.com | 5429p.com | www.892099.com | www.16878n.com | 30006a.com | www.3709884.com | www.50024l.com | 134767.com | www.89hghg.com | www.2109y.com | 56728i.com | www.438686.com | www.011888aa.com | 66671t.com | www.35877c.com | www.713667.com | 234903.com | www.808888r.com | www.359932.com | lh66h.com | www.5181889.com | gh7104.com | www.58339.com | www.1239999.cc | b829.xyz | www.66877.com | www.903839.com | 3685x.com | www.04567g.com | 7196m.com | www.hg77848.com | www.868339.com | lswjs189.com | www.25288d.com | www.915422.com | 11oo8331.com | www.5180889.com | 2613v.com | www.831813.com | www.39500q.com | 3467k.cc | www.m7764.com | g18299.com | www.40686e.com | www.5441s.com | 23599m.com | www.hs6666.com | 06006m.com | www.4853c.com | www.c4525.com |