• <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 www.9y.cc | www.574377.com | 7k126.com | www.sb5508.com | 3559s.com | www.6668a.vip | 0343.com | www.ykylc02.com | 73055g.com | www.16878j.com | 51335u.com | www.aa8618.com | www.vns518.com | www.43131f.com | www.60sun.com | 3189ee.com | www.js888800.com | 8884136.com | www.e7764.com | xfshzn.com | www.818993.com | 168cp.com | www.62500.cc | www.pj5938.com | 33115k.com | www.msc128.com | z18.com | www.js89b.vip | xpj98.com | www.du126.com | www.56520n.com | 4997x.com | www.388581.com | 500000795.com | www.763826.com | www.yinheyyy.com | afcp07.com | www.69989e.com | 6868269.com | www.44qxc.com | www.888255.com | 61320055.com | www.55717i.com | 0080j.com | www.455598.com | www.336631.com | 4995m.com | www.87668h.com | www.vns2n2.com | 1389k.com | www.45598m.com | 55810.com | www.ct6678.com | www.362234.com | w69441133.com | www.0014f.com | www.0860f.com | bbb2267.com | www.79095n.com | 64111w.com | 2096v.com | www.cn365f.com | da611.com | www.040419.com | www.16181j.com | nn00558.com | www.231844.com | www.5504h.com | 4022kk.com | www.567306.com | www.4078z.com | 5446cc.com | n444000.com | www.2544g8.com | www.85657a.com | ys777.co | www.3978j.com | www.00829d.com | 11452288.com | www.060wy.com | www.cjcp345.com | 76886d.com | www.237344.com | www.35700a.com | 3089r.com | 9971001.com | www.jl58qp.com | www.9996nn.com | 15930000.com | www.dy964.com | www.729666.com | 1422.cc | www.769526.com | www.hyi5.com | xx888i.com | 92928633.com | www.55885m.com | www.sese25.com | 83378o.com | www.ac9922.com | www.pj88q.com | 3936n.com | kn8pe8fq.pp.163.com | www.xinhuangguan.com | www.026789.com | xx888a.com | www.178756.com | www.zsjzxyy.com | www.9996mm.com | yy.com | www.589021.com | www.h2894.com | www.4759bb.com | blr878.com | www.05czj.com | www.00772c.com | www.223456o.com | 5802ww.com | www.580896.com | www.308105.com | www.2350h.com | www.hg98.la | www.hg558.com | gfc1688.com | www.890992.com | www.562351.com | www.40033.1340033.com | feicai0352.com | www.kkw915.com | 6339.com | www.77801p.com | www.326tk.com | 45637m.com | 7196a.com | www.w931.com | www.280772.com | www.vns2500.com | lp06.com | 2776y.com | www.371951.com | www.38775hh.com | www.8896kk.com | 9539r.com | t8009.com | www.356477.com | www.6350.vip | www.yyyy0066.com | www.aobo8866.com | 22959.com | 2201885.com | www.330687.com | www.50074d.com | www.45598o.com | www.js749.com | www.8494o.com | 23300d.com | v1781.com | www.755016.com | www.hg15588.com | www.563736.com | www.445887.com | YLHG5858.com | 3788u.com | www.641577.com | www.0343n.com | www.5001600.com | www.85770a.com | 22299dd.com | baliren01.com | 228888c.com | www.832795.com | www.088365.com | www.77731t.com | www.js16123.com | zhcpbb.com | 18438hd.com | www.330836.com | www.c6313.com | www.3846dd.com | www.hg5003.com | www.3657z.com | 5309o.com | 3334136.com | dz8222.com | www.526053.com | www.80767p.com | www.86339r.com | www.5099ii.com | www.a3a444.cc | www.pj39330.com | 50732.com | b35151.com | 1665n.com | 9694j.com | www.232651.com | www.ck9191.com | www.66332n.com | www.115527b.com | www.50021.com | www.20553311.com | www.huangguan1088.com | www.10899g.com | 4116r.com | cc00558.com | 4488ii.com | 3846jj.com | 3379o.com | 3096.pro | bowanwang.com | www.980273.com | www.83033n.com | www.7886268.com | www.8645005.com | www.hh55826.com | www.805kj.com | www.9949r.com | www.333133v.com | www.3089c.com | www.hg80999.com | 3424v.com | www.bm445566.com | 3379jj.com | 22556j.com | 76886e.com | 8547j.com | 6261j.com | v86811.com | wnsr8829.com | wb130.com | 36500365.com | 0747pp.com | bb5443.com | 1483ll.com | JS191.com | 1077sss.com | 59889n.com | df8d.com | 65005w.com | hr616.com | www.28758v.com | www.ts11888.com | www.pjbet555.com | www.www5151msc.com | www.pj9448.com | www.77438.com | www.kj853.com | www.0077jj.com | www.66c668.com | www.4446ddd.com | www.47506k.com | www.8577.com | www.aobo190.com | www.4331p.com | www.48330w.com | www.99094c.com | www.5856881.com | www.87668p.com | www.3890r.com | www.0014a.com | www.776873.com | www.308069.com | www.523780.com | h88983.com | h4255.com | 7893w04.com | 1231313.com | 0625a.com | 881381.com | www.4972oo.com | www.hg8326.com | www.sj52288.com | www.47506.net | www.4833022.com | www.3126aa.com | www.rrle2.com | www.xinyc4.com | 4441164.com | s8381.com | 55967m.com | r86226.com | 2418008.com | www.bet3650714.com | www.yh44777.com | www.070977.com | www.26123aa.com | www.9996tt.com | www.9356k.com | www.981060.com | 80368hh.com | xinpj1600.com | 4444c9.com | 66002007.com | www.wns911.com | www.www660882.com | www.27363e.com | www.68365y.com | www.68689s.com | www.715121.com | 80368hh.com | 866666.org | b4389.com | hgw168.com | www.zr7377.com | www.829797a.com | www.9646f.com | www.602630.com | 49114.com | 300089v.com | 8722xxxx.com | www.943a28.com | www.111889.com | www.883399b.com | www.3479n.com | www.50024a.com | 6630081.com | 6118l.com | www.hg6607.com | www.88.net | www.35231.com | www.43131y.com | 201866.com | p7890.com | www.36677c.com | www.88166y.com | www.83993m.com | www.305988.com | c67890.com | 104727.com | www.655666h.com | www.472703.com | www.53911d.com | 66300vip07.com | 3640qq.com | j1504.com | www.56655q.com | www.1666c.com | www.175902.com | 1634v.com | 2418z.com | www.000435.com | www.22468.com | www.377507.com | feicai029.com | www.86611p.com | www.68277111.com | www.868553.com | www.89894c.com | tz22666.com | www.81866m.com | www.85857t.com | www.26878h.com | www.114149.com | 8538x.com | www.5588hg.com | www.5208666.com | www.hx1161.com | 6150w.com | thrlvxzt.cn | www.vip6233.com | www.22062d.com | yd12306.com | x33u.vip | www.bet445.com | www.78949m.com | 5144m.com | 15a10.net | www.365815d.com | www.99552yy.com | www.979738.com | 3122ee.com | www.986686.com | www.y8917.com | www.508477.com | 8547n.com | www.msc99.la | www.868553.com | 365499.bet | 55kk8331.com | www.8473s.com | www.812830.com | 838388e.com | www.js520345.com | www.957004.com | e2649.com | 2267e.com | www.107601.com | www.22tdc.com | 6245k.com | hg1044.com | www.291234.com | www.33358c.com | swtynnn.com | www.6999blr.com | www.511106.com | 21vnsvns.com | 9895g.com | www.sha0066.com | www.976921.com | 75991c.com | www.40344.com | www.9155k.com | vns3.vip | www.77958.com | www.6769b.com | 1v939.com | www.hg226.cm | www.81233hh.com | 9995a.cc | www.vip355.vip | www.08588z.com | 3024z.com | www.16639.com | www.41518q.com | shunying9.com | www.e22365.com | www.7239p.com | w11.vip | www.553418.com | www.90305d.com | x2.cc | www.902488.com | www.cp208.com | 11005l.com | www.3157b.com | www.081306.com | 22555004.com | www.x4242.com | 75878.com | www.hg10978.com | www.444xm.cc | 51133p.com | www.00773p.com | 80368p.com | www.js80388.com | www.dy826.com | 43234323.com | www.d22255.com | www.271901.com | kk5443.com | www.42842810.com | 776091com | www.333639.com | www.547638.com | 8901p.com | www.js57788.com | 33599oo.com | www.593333.com | www.525988.com | 272k.net | www.83993f.com | 7240i.com | www.55060v.com | 650661.com | www.v15528.com | www.9928i.com | bet3650760.com | www.f83377.com | 079.com | www.518999.com | www.068625.com | www.7669c.net | www.022sd.cc | mgm3242l.com | www.js02348.com | 0015mm.com | www.249559.com | 7935a.com | www.84162222.com | www.277739.com | www.7720n.com | www.984jc.com | 2595p.com | www.0194002.com | 3846c.com | www.115527v.com | 001122333.com | www.428858.com | da1369.com | www.p7890.com | www.382780.com | www.32126m.net | www.962387.com | 5833yl.com | www.013ac.com | 50000977.com | www.5086o.com | yh888u.com | www.07163j.com | am2828.cc | www.96386w.com | 55545e.com | www.87668m.com | 11005.com | www.68568g.com | ctxcp58.com | www.65707f.com | 4131.com | www.8816t.com | 3136ss.com | www.878.me | www.ylg3999.com | www.911888a.com | www.9566409.com | www.938518.com | amjsc05.com | www.qbwc4.com | www.byd001.com | www.775702.com | www.hg518.com | www.330192.com | www.hg21.com | 228888q.com | www.js00033.com | 5544vn77.com | www.rgcp111.com | 36404433.com | www.77782yh.com | 51133z.com | www.hr499.com | 838388p.com | www.33997z.com | 201833.com | www.589144.com | www.xpj2778.com | 2535.com | www.8862tt.com | 70661.com | www.hg33395.com | r14666.com | www.66621j.com | 32355hh.com | www.466060.com | www.215252.com | 1591002.com | www.x55n.net | hg793.com | www.hg27388.com | 8036ii.com | www.592909.com | www.589msc.com | 771381.com | www.369410.com | 365vip800.cc | www.gocp6.com | www.44744.com | 77226556.com | www.1851114.com | 3650711.com | www.3126y.com | www.h7788i.com | 2373f.com | www.3066jj.com | 55797j.com | www.rrle4.com | www.hg06661.com | 4346.com | www.80868.com | 2546r.com | www.607269.com | www.jm40.com | 4182q.com | www.91233h.com | www.g2006.com | 44229193.com | www.88325v.com | 3009w.com | www.589056.com | www.746778.com | 92266i.com | www.7116b.com | www.77537b.com | 18887365.com | www.4499nsb.com | feicai08059.com | www.131671.com | www.19019l.com | 8381v.com | www.799343.com | www.js664.com | ctxcp26.com | www.103ak.com | www.3616g.com | 3122s.com | www.16878b.com | www.hg5532.com | 66090022.com | www.21202b.com | www.kelake77.com | 588ppp.cc | www.50024k.com | www.2846hh.com | 3844ee.com | www.5484d.com | www.1484vip3.com | 6556pk.com | www.c4529.com | www.49yj.com | 4647022.com | www.344141.com | www.00773i.com | 2649i.com | abet384.com | www.8c000.com | hg91668.com | bet365vip.com | www.55717p.com | www.yh8894.com | nn56988.com | www.3552o.com | www.jinsha8.net | 5856ww.com | www.318097.com | www.biying900vip.com | 8036g.com | 33886556.com | www.55111122.com | www.hggj2288.com | 3522bb.cc | www.609710.com | www.04567v.com | g1429.com | 15a8.net | www.33588p.com | www.hg7949.com | baliren185.com | 32424k.com | www.984706.com | www.32666c.com | 4136m.com | www.403289.com | www.9895s.com | www.yh03456.com | 159666d.com | www.912162.com | www.4078c.com | www.34966.com | 28824x.com | www.hcjt7.com | www.99113w.com | 5005b.com | 33318v.com | www.qucp2.com | www.99113e.com | 20771188.com | pj00.com | www.689744.com | www.s063801.com | www.3046k.com | yun555.com | www.150822.com | www.1232222.net | www.js00369.com | 35bb.vip | ff555q.com | www.556zf.com | www.57800t.com | www.p34888.com | 32212t.com | 2418.com | www.89338.com | www.gt111999.com | www.0377365.com | 67890k.com | 667766x.com | www.50052r.com | www.58665v.com | www.hg6789.com | b68080.com | www.66653v.com | www.81678z.com | www.cai73.cc | www.026033.com | 01234lll.com | 7334u.com | www.fh3993.com | www.y8817.com | www.66136cc.com | 97659.com | 4997p.com | www.66652a.com | www.50064b.com | www.26123bb.com | www.32666p.com | 9949f.com | rh66666.com | www.015990.com | www.77803r.com | www.5981l.com | www.vns6036.com | 2846f.com | c89fhg3.com | 2618w.com | www.022am.cc | www.78680i.com | www.157234.com | www.7720e.com | 33xx8331.com | 265609.com | www.88266u.com | www.5441z.com | www.xpj3.net | www.88jt99.com | www.621155c.com | xpj5007.com | xin98776.com | wlb22.com | www.898341.com | www.4331t.com | www.dzj0666.com | www.32925.com | 9895.com | 66458u.com | 943a9.com | lovebet652.com | www.igcp2.com | www.9989579.com | www.4446bbb.com | www.39978d.com | www.6491w.com | 00940.com | 88000076.com | www.sx1811.com | www.5504e.com | www.emc7677.com | 3936b.com | hg7033.com | qq444000.com | 8294d.com | www.068651.com | www.954689.com | www.81678x.com | www.6133.com | www.d32939.com | www.10340.com | www.7893w54.com | 44qq8331.com | 33ee8332.com | 0860p.com | 205235.com | 0652i.com | www.339189.com | www.lczg6.com | www.88266y.com | www.8905m.com | www.7334i.com | www.4786e.com | www.2288078.com | www.yinhe9507b.com | 9679w.com | nn500c.com | 4036356.com | o8009.com | 667766t.com | 983888y.com | 4880y.com | www.273215.com | www.762918.com | www.589zf.com | www.52303p.com | www.5500ra8.com | www.12136b.com | www.3983151.com | www.8k315.com | www.58atv.com | www.59503.com | www.9679i.com | www.bet2828365.com | www.56733k.com | 589669.com | ddd2267.com | 2060088.com | 9339999h.com | f86226.com | 5856sss.com | 0201jj.com | 80892h.com | bojue5.com | mg437744.com | 6363j.com | 365ms.net | 55155z.com | yy4119.com | 5456p.com | 9103aa.com | o86811com | 188qq77.com | w11.vip | 00048m.com | 8006501.com | f2894.com | 33599rr.com | 8722qqqq.com | 83138m.com | 80368ss.com | 3846b.com | 6723888.com | mg887788.com | 6150u.com | 8957b.com | 0245x.com | 0747vv.com | 3656gg.com | www.spj00.net | www.vns990.cc | www.00618k.com | www.z0151.com | www.ambjlb.com | www.554331.com | www.147373.com | www.232060.com | www.848777q.com | www.1754b.com | www.56011i.com | www.68993272.com | www.89894t.com | www.9149g.com | www.ct6675.com | www.602742.com | www.106326.com | jxf964.com | 778074.com | 500c.vip | 7240w.com | 1458s.com | 8977jj.com | 8030d.com | www.65533b.com | www.88807e.com | www.30406666.com | www.qmc0077.com | www.bwinyz22.com | www.638713.com | www.8582vv.com | www.5091i.com | www.712250.com | www.61655i.com | wx3355.com | 7720q.com | hc3389.com | 500000416.com | www.ks883.com | www.717012.com | www.52tyc.com | www.6880vv.com | www.48330i.com | www.36788l.com | www.785803.com | 39830f.com | 69y69.vip | 8590.cc | 3078q.com | www.733665.com | www.88399c.com | www.26123bb.com | www.1232222.net | www.111xm.cc | www.196807.com | 6403z.com | p72227.com | j3144.com | www.333xhtd.com | www.260666.com | www.38138o.com | www.333682.com | www.976731.com | 7811nn.com | spj04.com | a757044.com | www.hg6789.com | www.14900c.com | www.64566b.com | www.78949d.com | www.665881.com | betke.cc | 9646y.com | k35151.com | www.pj8793.com | www.99113z.com | www.amdwc.net | www.882186.com | xh00020.com | 38398.com | 908080c.com | www.cz3065.com | www.4996hh.com | www.50080x.com | www.346377.com | 69446677.com | zb182.com | www.yyy7777.com | www.5049n.com | www.5958818.com | www.801876.com | 3788m.com | 4052p.com | www.wan6668888.com | www.35252v.com | www.36580000.com | www.500021.com | pj88488.com | 2127e.com | www.57799vv.com | www.35252i.com | www.5854y.cc | 149301.com | d40033.com | www.8124s.com | www.w456x.com | www.99788p.com | www.hcw018.com | alpk8.com | 5855jj.com | www.bsd9999.com | www.0601b.com | www.270667.com | gh7105.com | 52688h.com | www.jy758.com | www.7239i.com | www.126293.com | 53206666.com | www.hg8599.com | www.w948w.com | www.89894m.com | 0885r.com | dzj9966.com | www.87680m.com | www.185142.com | www.tlcp2.com | 5003j.com | 5589x.com | www.k8kk11.com | www.ribo23.cc | www.068651.com | 3846uu.com | www.5511sb.com | www.62979g.com | www.693670.com | 55545q.com | www.hg44401.com | www.9737rr.me | www.flff6.com | 2373r.com | 90307y.com | www.4212m.com | www.71gcw.com | 8449vv.com | ff63777.com | www.79500m.com | www.5091c.com | 4052l.com | 38822299.com | www.5146z4.com | www.qm72.com | zhcp83.com | www.7435b.com | www.320279.com | www.550346.com | q45638.com | www.z0151.com | www.997286.com | mobile.baidu.com | 76886r.com | www.5055msc.com | www.6611d.cc | 1665j.com | www.pjhubei.com | www.xpj11882.com | www.137916.com | js58333.com | www.jinniu00.com | www.8039k.com | 4066l.com | www.700h.com | www.4625.com | 4116d.com | 500000751.com | www.c5c11.com | www.890413.com | 060nnn.com | www.333423.net | www.52303b.com | 131z.net | www.48163.com | www.7240g.com | 500000791.com | 11555002.com | www.115527w.com | www.001036.com | 332229.com | www.8885hj.com | www.330716.com | 84494433.com | www.983888b.com | www.642977.com | 8381t.com | www.dzcp6666.com | www.684335.com | 36400099.com | www.258suncity.com | www.890751.com | 3522n.cc | www.55526e.com | www.755216.com | 官网捕鱼5.com | www.b8cp.com | www.545568.com | 17798888.com | www.9737hh.com | www.175568.com | 033w.net | www.792073.com | v0099.tv | www.pj4666.com | www.7886263.com | 6076.com | www.kelake22.com | www.38396.com | xf0371.com | www.cjcp345.com | www.509433.com | 8827uu.com | www.5557795.com | 88552007.com | www.xpj9878.com | www.84499n.com | 20178.com | www.55537.com | www.495770.com | hcp6666.com | www.6057777.com | 7811i.com | www.40033.1340033.com | www.015ac.com | 2998j.com | www.b35.com | 2013880.com | www.yy733.com | www.16878l.com | 86226s.com | www.88166t.com | aa5360.com | www.3459t.com | www.1368i.cc | 8037t.com | www.7225j.com | byj10.com | www.9380l.com | www.931499.com | yhjiangsu.vip | www.6699nsb.com | 81005.com | www.90989.com | www.178952.com | www.369wyt.com | www.60007n.com | 67890mmm.com | www.89677q.com | 44077a.com | www.22244066.com | www.727076.com | kk2205.com | www.15.net | 800vns.com | www.pjgw11.com | wlb333.com | www.129u.com | www.126509.com | www.vns990.cc | www.088wy.com | 4858xianlu.com | www.62778855.com | 预览chunqiu6.com | www.71071g.com | 38648oo.cc | www.531msc.com | www.131873.com | www.8694l.com | www.810877.com | 547563.com |