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

    Java設計模式(五) 組合模式

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

    組合模式介紹

    組合模式定義

    組合模式(Composite Pattern)將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶可以使用一致的方法操作單個對象和組合對象。

    組合模式類圖

    組合模式類圖如下
    Composite pattern class diagram

    組合模式角色劃分

    • 抽象組件,如上圖中的Component
    • 簡單組件,如上圖中的SimpleComponent
    • 復合組件,如上圖中的CompositeComponent

    組合模式實例

    實例介紹

    對于一家大型公司,每當公司高層有重要事項需要通知到總部每個部門以及分公司的各個部門時,并不希望逐一通知,而只希望通過總部各部門及分公司,再由分公司通知其所有部門。這樣,對于總公司而言,不需要關心通知的是總部的部門還是分公司。

    實例類圖

    組合模式實例類圖如下(點擊可查看大圖)
    Composite pattern example class diagram

    實例解析

    本例代碼可從作者Github下載

    抽象組件

    抽象組件定義了組件的通知接口,并實現了增刪子組件及獲取所有子組件的方法。同時重寫了hashCodeequales方法(至于原因,請讀者自行思考。如有疑問,請在評論區留言)。

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package com.jasongj.organization;

    import java.util.ArrayList;
    import java.util.List;

    public abstract class Organization {

    private List<Organization> childOrgs = new ArrayList<Organization>();

    private String name;

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

    public String getName() {
    return name;
    }

    public void addOrg(Organization org) {
    childOrgs.add(org);
    }

    public void removeOrg(Organization org) {
    childOrgs.remove(org);
    }

    public List<Organization> getAllOrgs() {
    return childOrgs;
    }

    public abstract void inform(String info);

    @Override
    public int hashCode(){
    return this.name.hashCode();
    }

    @Override
    public boolean equals(Object org){
    if(!(org instanceof Organization)) {
    return false;
    }
    return this.name.equals(((Organization) org).name);
    }

    }

    簡單組件(部門)

    簡單組件在通知方法中只負責對接收到消息作出響應。

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

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

    public class Department extends Organization{

    public Department(String name) {
    super(name);
    }

    private static Logger LOGGER = LoggerFactory.getLogger(Department.class);

    public void inform(String info){
    LOGGER.info("{}-{}", info, getName());
    }

    }

    復合組件(公司)

    復合組件在自身對消息作出響應后,還須通知其下所有子組件

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

    import java.util.List;

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

    public class Company extends Organization{

    private static Logger LOGGER = LoggerFactory.getLogger(Company.class);

    public Company(String name) {
    super(name);
    }

    public void inform(String info){
    LOGGER.info("{}-{}", info, getName());
    List<Organization> allOrgs = getAllOrgs();
    allOrgs.forEach(org -> org.inform(info+"-"));
    }

    }

    組合模式優缺點

    組合模式優點

    • 高層模塊調用簡單。組合模式中,用戶不用關心到底是處理簡單組件還是復合組件,可以按照統一的接口處理。不必判斷組件類型,更不用為不同類型組件分開處理。
    • 組合模式可以很容易的增加新的組件。若要增加一個簡單組件或復合組件,只須找到它的父節點即可,非常容易擴展,符合“開放-關閉”原則。

    組合模式缺點

    • 無法限制組合組件中的子組件類型。在需要檢測組件類型時,不能依靠編譯期的類型約束來實現,必須在運行期間動態檢測。

    組合模式與OOP原則

    已遵循的原則

    • 依賴倒置原則(復合類型不依賴于任何具體的組件而依賴于抽象組件)
    • 迪米特法則
    • 里氏替換原則
    • 接口隔離原則
    • 單一職責原則
    • 開閉原則

    未遵循的原則

    • NA

    Java設計模式系列

    郭俊 Jason wechat
    歡迎關注作者微信公眾號【大數據架構】
    您的贊賞將支持作者繼續原創分享
    速赢彩app www.1122300.com | www.99094p.com | 80567v.com | www.hr1844.com | 159666e.com | www.7782u.com | 18438n.com | www.394689.com | www.bh99o.com | zunyi18.com | www.ag0345.com | 8003aa.com | www.36788.com | www.pjanhui.com | www.190883.com | www.869msc.com | 53262ii.com | www.5446e.com | 56787uu.com | www.ascp00.com | www.txck.cc | 99151h.com | www.1064f.com | 39199s.com | www.7793s.com | www.hg97hg97.com | ms38648ff.cc | www.99094i.com | 44488u.com | www.603224.com | www.82270.com | 28288hh.com | www.68993262.com | www.653505.com | 5478xl.com | www.19019m.com | 3024m.com | www.cp3.mobi | www.55526x.com | 69443366.com | www.fcff0.com | www.9374k.com | 59599j.com | www.28891j.com | www.709899.com | 8547gg.com | www.c30666.com | 20550459.com | www.81678o.com | www.848777b.com | dadicp.com | www.591733.com | www.2y930.com | bcw1234.com | www.919227.com | www.vic040.com | 32555p.com | www.cp8005.cc | www.v1186.com | 779644.com | www.1035z.com | www.xpj787.com | 80368cc.com | www.55885h.com | www.2846q.com | z83377.com | www.0601m.com | www.yh6099.com | e1327.com | www.8977500.com | www.m1862.com | 8550500.com | www.78949d.com | www.i55106.com | 3685o.com | www.750966.com | www.5405006.com | vvv1915.com | www.793990.com | www.zte333.com | 00774vv.com | www.132918.com | www.33678tt.com | www.6033f.com | 9420z.com | www.xinhuangguan.com | www.350558.com | 3778tt.com | www.324177.com | www.87708.vip | www.bobifa.net | 914907.com | www.2350t.com | www.693suncity.com | 00773ee.com | zb7288.com | www.87480.com | www.z9163.com | 2324eee.com | www.390477.com | www.77786yh.com | www.cr1118.com | 0055gbh.com | www.663738.com | www.89677a.com | www.a2a888.cc | 168cp-i.com | www.500599a.com | www.89599e.com | 59964mm.com | 06385656.com | www.810926.com | www.38138i.com | www.hgttt.com | g67890.com | www.640177.com | www.12136x.com | www.69111n.com | df8v.com | 8766549.com | www.hm2777.com | www.00778g.com | www.twcp06.com | 5219k.com | www.61233u.com | www.bet353654.com | www.35252x.com | 3424n.com | 83378a.com | www.178670.com | www.hga99900.com | www.q3065.com | www.pj3234.com | r93.com | www.ct8877.com | www.79095x.com | www.a80047.com | 8577j.cc | 37770772.com | 3679ee.com | www.912183.com | www.0088hgcc.com | www.sbbet138.com | www.xpj222111.com | 2490m.com | 115478.com | www.djcp001.com | www.hg366.com | www.618msc.com | www.xhtd03.com | 4488f.com | 59889.com | www.548277.com | www.dayou566.com | www.1429g5.com | www.789324.com | 1429k.com | tt9.com | 36401111.com | www.178752.com | www.15355g.com | www.115527k.com | www.7812hg.com | www.hjha77.com | 4182f.com | 3522nn.cc | 1468ddd.com | www.689244.com | www.81678b.com | www.6687n.com | www.123588.com | www.h7788u.com | 83377n.com | 3640ee.com | 111122aa.com | n45638.com | www.811030.com | www.35918k.com | www.3846d.com | www.0999888.com | www.9956699.com | www.cr448.com | 78332.com | 5856ccc.com | 1382.cm | 00774xx.com | www.444086.com | www.c5884.com | www.4323e.com | www.00xpj58.com | www.0002737.com | www.zx5553.com | www.m222999.com | 1624hh.com | 3522e.vip | 53262ss.com | 3467d.com | 4997r.com | 9464004.com | www.196037.com | www.827737.com | www.5854t.cc | www.86267m.com | www.63568.com | www.o80288.com | www.xy3550.com | www.548666.com | www.js643.com | www.msc66.com | www.xhtd3344.com | www.4123k.app | hg07111.com | 7779f.cc | 0448099.com | 11gg8331.com | 7742uu.com | 3775i.com | 67890mm.com | 444000ff.com | 3967s.com | 407uu.com | c89kj213.com | 141237.com | 7681002.com | 547827.com | 7605s.com | o21148.com | 61652b.com | 87965vv.com | 16290077.com | 499965.com | 5099bb.com | 141237.com | youfa560.com | 11005g.com | 86811ee.com | 3435q.com | jinsha3845.com | 4995z.com | 55331382.com | 1115673.com | 3245.com | www.68666r.com | www.156250.com | www.653507.com | www.1990365.com | www.hg423.com | www.b4737.com | www.7893w50.com | www.amjsty5.com | www.228369.com | www.82205.com | www.01.bet | www.88166n.com | www.35252c.com | www.4102x.com | www.7969.com | www.12455h.com | www.ybao2.com | www.769639.com | www.298396.com | js848.vip | o2306.com | 1064g.com | l99474.com | 55331kk.com | 6220z.com | www.554js.com | www.hgw0088.com | www.442336.com | www.c44ss.com | www.4996lj.com | www.68365a.com | www.26299i.com | www.hh8618.com | 33115n.com | www.hjdc2000.vip | www.356309.com | www.dzj0555.com | www.cb900.cc | www.084wy.com | www.599424.com | 1607.com | vns55545.com | 0033u.cc | www.pj6653.com | www.609sunbet.com | www.19yh1.com | www.495414.com | www.00665d.com | www.389044.com | xinli18sport.com | xd2018.com | 3141.com | www.jm40.com | www.38775ss.com | www.37193.cc | www.160592.com | 5446f.com | spj01.com | thrlvxzt.cn | www.hg8997.com | www.99113l.com | www.400849.com | www.718322.com | 0080g.com | 3522aa.cc | www.gh0092.com | www.amdc0009.com | www.69567j.com | www.011ac.com | xianboba.com | j67890.com | 5804a.com | www.xpj1506.com | www.4521e.com | www.361gc.com | 66648a.com | 77606wcom | feicai010.com | www.08057777.com | www.78919d.com | www.869576.com | 65005m.com | t4212.com | www.76543u.com | www.jz6999.com | www.50788j.com | www.52072x.com | mayait.cn | www.86611o.com | www.466669.com | www.3zq01.com | www.356686.com | wns789.com | 7726aaa.com | www.888950.com | www.6939b.com | www.372918.com | 2247tt.com | 998.cc | www.61343.com | www.60123r.com | lg5577.com | 3778gg.com | www.7025t.com | www.0096ff.com | www.369888a.com | lh66j.com | 35115.am | www.16181v.com | www.074wy.com | 11000.com | 83086q.com | www.js968.com | www.50732m.com | xh6.org | fc9596.com | www.9196hg.com | www.81233m.com | zhcpss.com | 55xx8331.com | www.5555zh.cm | www.yi816.com | 3222b.cc | www.32126v.net | www.4521e.com | www.599436.com | 5802ff.com | www.00618r.com | www.56011o.com | www.090392.com | 657094.com | www.935770.com | www.87668q.com | ra333333.com | 6868nn.cc | www.15365e.com | www.709928.com | 35222nn.com | www.js00369.com | www.ya2019x.com | xinli18sport.com | 83086p.com | www.hg8993.com | www.842686.com | 8722aaaa.com | www.929777.com | www.49956j.com | 305710.com | www.hg226.cm | www.832090.com | 37570e.com | www.8520v.com | www.4483066.com | www.105180.com | vipvip7777.com | www.bfcaip.com | www.609810.com | t1915t.com | www.hjcp6.com | www.864355.com | 44265555.com | www.1389nn.com | www.865850.com | 4025s.com | www.3277msc.com | www.cp2838.com | 3656ii.com | www.js968.com | www.642638.com | m3405.com | www.1343.com | www.235952.com | mgm3242k.com | www.3421b.com | 2222138.com | www.cr666.com | www.0270r.com | 111hg88.com | www.c6784.com | www.cp8017.cc | js99870.com | www.5446vv.com | goodmgm.com | www.9846f.com | www.28229.com | 7736t.com | www.239988.com | www.c3518.com | hg886.com | www.4136u.com | 67877e.com | www.70088hg.com | www.6653e.com | 13820000.com | www.bj563.com | www.39500v.com | www.033033f.com | www.4833058.com | 118888c.com | www.20288r.com | www.689613.com | 2846f.com | www.t63568.com | 550111t.com | www.o9993122.com | www.50080u.com | www.7720p.com | www.00665h.com | 3788hh.com | www.820021.com | 8294o.com | www.414266.com | www.407871.com | www.237015.com | www.50024m.com | mm1915.com | www.4521q.com | hhhhh.com | www.ddpahv.com | bwin940.co | www.h7788g.com | www.978951.com | 3156qqq.com | www.99788b.com | x01234.com | www.178441.com | pj968810.com | www.xpj2070.com | 547902.com | www.dbz9.com | 7686p.com | www.hg520.com | www.682877.com | www.hg0297.com | 23599l.com | www.7225q.com | xx888v.com | www.618961.com | 7726ddd.com | www.657714.com | 2349014.com | www.rf0388.com | www.167356.com | www.i7727.cc | www.351781.com | www.56520r.com | www.621410.com | www.8124q.com | www.905881.com | 37730vip.com | www.914909.com | www.0888js.com | www.c760.net | www.5554dhy.com | www.799200.com | www.6491w.com | www.709720.com | www.xpj2278.com | www.526031.com | www.365815z.com | www.314077.com | www.ii9702.com | www.082709.com | www.48123.hk | 5003qq.com | www.12232a.com | 320006.com | www.19019g.com | 500000798.com | www.861002.com | 3640pp.com | www.535520.com | 6220p.com | www.ascp6.com | www.vns8n8.com | www.303484.com | www.908558.com | 7742pp.com | www.50999y.com | bowang22.com | www.l98478.com | 3661yh.com | www.33clf.com | www.yh06789.com | www.106576.com | www.89055.com | 3454547.com | www.33678qq.com | 11018o.com | www.50788d.com | www.4123020.com | www.256968.com | www.479898.com | 118888777.com | www.12136l.com | yzc329.com | www.rcw678.com | www.js36644.com | 6137h.com | www.673888a.com | 40033aaa.com | www.05028.com | www.cr689.com | 2349001.com | www.l32939.com | b7090.com | www.41211.cc | www.9996xx.com | 6641q.com | www.mgm868008.com | 2737vip.com | www.ya115.com | www.3245r.com | 32355nn.com | www.js89r.vip | 30007t.com | www.543411.com | www.blr730.com | l66474l.com | www.66652d.com | www.boma0150.com | 8742q.com | www.83377.com | feicai0719.com | www.560231.com | www.low8937.com | 547842.com | www.15355n.com | www.b30226.com | xpj62622.com | www.xh389.com | www.e67783.com | 22117b.com | www.2021e.com | 8290p.com | www.178753.com | www.98698p.com | 49964.com | www.777337a.com | www.hg93777.com | i32365.com | www.26299k.com | www.kelake77.com | hg3457.com | www.50064k.com | www.2224427.com | 2229.net | www.85090.com | www.166349.com | pw9.com | www.5854y.cc | www.33sunncity.com | 8522yyyy.com | www.slyl1.com | www.49899.com | 3405ll.com | www.710230.com | www.cp0016.com | 99567u.com | www.083039.com | www.79095f.com | 9002q.com | zhcp100.com | www.4923i.com | www.caipiao050.com | 55545x.com | www.918io.com | www.esb116.net | wnsr8813.com | www.131671.com | www.63606t.com | www.33366638.com | 44qq8332.com | www.3416l.com | www.487575a.com | 20160913.com | 15856i.com | www.7240s.com | www.yl00555.com | 80892q.com | www.739233.com | www.hyi3.com | www.6000bjl.com | 2613g.com | www.656zf.com | www.3846j.com | 168cp-v.com | 3679oo.com | www.54400p.com | www.9068nn.com | sp2088.com | k99345.am | www.97655c.com | www.61199.com | 70118JS.com | 5004v.com | www.50024k.com | www.11223885.com | 55899m.com | 457209.com | www.2222y.cc | www.4694n.com | www.yun770.com | 51133h.com | www.652392.com | www.11521.com | www.21365jj.com | 54140011.com | aydfwjc.com | www.27666000.com | www.hj829.com | 5443oo.com | 452922.com | www.882358.com | www.33678gg.com | www.09569w.com | 5856rr.com | 3089t.com | www.3479i.com | www.55060x.com | www.hg6699.net | 7003r.com | 7m3777.com | www.07813.com | www.00772s.com | www.hg226.cm | 86811x.com | 3404x.cc | www.949403.com | www.07679m.com | www.98333.com | 3169p.com | 3176688.com | www.309388.com | www.50811.com | www.18123.com | www.4763222.com | 4955y.com | 2019p.cc | www.745557.com | www.7240z.com | www.kuaibet.com | www.9599447.com | 8538l.com | 30007r.com | www.759585.com | www.186664.com | www.468546.com | www.4111.cc | baliren185.com | 6600mmmm.com | www.081307.com | www.32123q.com | www.7225a.com | www.xpj7747.net | 66665156.com | 4255xxx.com | 3522ww.cc | www.548338.com | www.86267t.com | www.sha0088.com | www.658226.com | 88052.com | 9068p.com | 500000759.com | www.026079.com | www.1035o.com | www.ca8077.com | www.998855p.com | www.4938s.com | 56988r.com | 4556p.com | pjxizang.com | 5539822.com | www.927233.com | www.4923t.com | www.1559506.com | www.fbs333.com | www.67797q.com | 28758p.com | 7003xx.com | 88850uu.com | 6150h.com | www.572539.com | www.8499t.com | www.826018.com | www.00773k.com | www.hg281.com | www.58777j.com | 99066555.com | ylzz2228.com | dhy.cc | 206403.com | 66458d.com | www.191079.com | www.936336.com | www.78949s.com | www.56011h.com | www.5446hh.com | www.000amdc.com | www.xh4477.com | www.amjs602.com | 56988i.com | 22061.com | 584464.com | 998q.cc | 68228s.com | 1483yy.com | 97297m.com | www.257188.com | www.773976.com | www.918io.com | www.00889a.com | www.8899gvb.com | www.9737hh.com | www.3533msc.com | www.xpj5552.com | www.sbet818.com | www.zunbao19.com | 3659h.cc | 3245999.com | dx059.com | tt6836.com | 3640s.com | 2172225.com | xpj382.cn | vv40033.com | 33xpj377.com | 5369i.com | 97799k.com | 4195z.com | 00gg8331.com | 97297l.com | www.86267u.com | www.304110.com | www.502990.com | www.599843.com | www.763605.com | www.811597.com | www.862810.com | www.861099.com | www.882186.com | www.836595.com | www.785579.com | www.848066.com | www.799427.com | www.785803.com | www.689631.com | www.616888.com | www.591799.com | www.djcp007.com | www.444081.com | www.452803.com | www.335021.com | www.196309.com | www.068657.com | 89777m.com | 10222.com | js666.la | 00oo8332.com | cabet266.com | 88851f.com | 66887web.com | 3242k.com | 11ii8332.com | 66p88.cc | zhcp40.com | www.veb188.com | www.vnsr500.com | www.00829l.com | www.hg4010.com | www.56830f.com | www.82409.com | www.8967r.com | www.4996wh.com | www.sands2006.com | www.hg7113.com | www.9646a.com | www.11554.cc | www.890886.com | www.367474.com | 29918l.com | 99772007.com | 77885156.com | x15666.com | 22kk8331.com | hgw168g.com | www.56520g.com | www.143098.com | www.42msxfpt5.com | www.bwin920.co | www.yh888a.com | www.xinhuangguan.net | www.089c.cc | www.544090.com | 4052o.com | 3121c.com | fucaiwang.pw | hubo8.cc | 888234.com | www.suncity88.net | www.67799.com | www.673888h.com | www.7140988.com | www.33598p.com | www.701671.com | 23800p.com | 3202h.com | 9522gg.com | 748.net | www.330099t.com | www.3334msc.com | www.06386666.com | www.550021k.com | www.917963.com | 97297l.com | 943a9.com | 7599cc.com | 1591fff.com | www.92220746.com | www.50999.com | www.pj9050.com | www.3933l.cc | www.188932.com | 1489y.com | o67890.com | 1389tt.com | www.ozhou9.com | www.7415ii.com | www.50819.com | www.998632.com | 22117o.com | sss090.com | h2894.com | www.4938t.com | www.79500e.com | www.hn58qp.com | www.938518.com | 5144u.com | js365dl.com | 47749c.com | www.q9163.com | www.45598n.com | www.33598p.com | www.150883.com | 22890.co | 3522qq.com | www.x27229.com | www.fuck58.com | www.0343v.com | www.901576.com | 66449193.com | 4340x.com | www.wn2058.com | www.ks4499.com | www.1764x.com | www.864755.com | tt1331.com | pj300.cc | www.67797o.com | www.50999.com | www.50052hh.com | www.202880.com | 9101908.com | 6245f.com | www.gp4672.com | www.1764z.com | www.786126.com | 0789.com | 8577b.cc | www.9289988.com | www.742388.com | www.898341.com | 35442444.com | 2776l.com | www.hg30567.com | www.52062b.com | www.652392.com | 7240d.com | 1592l.com | www.2377msc.com | www.99638k.com | www.49956u.com | 4461z.com | www.87680l.com | www.06820y.com | www.983480.com | 121.net | hg85877.com | www.138cps.com | www.55228j.com | vs9777.com | f45638.com | www.k555555.com | www.185647.com | 0054242.com | ff4119.com | www.6178056.com | www.642486.com | www.263289.com | 3568d.com | www.9996aa.com | www.380870.com | www.424223.com | 70221.com | www.4938r.com | www.xpj3123.com | www.389344.com | aaa5701.com | www.3643m.com | www.4102c.com | www.289917.com | 57157c.com | www.663929.com | www.5952122.com | w9155.com | 11vv8332.com | www.788780.com | www.33997.com | pj12323.com | www.8520q.com | www.1851138.com | www.694880.com | bet8688.cc | www.9101905.com | www.983258.com | 500000972.com | 7792k.com | www.4963bb.com | www.806875.com | 33382q.com | www.33377799.com | www.rfdc02.com | 11z66.com | 88052.com | www.4521.com | www.178153.com | 0919666.com | www.998855f.com | www.c6465.com | 30174433.com | www.zb399.com | www.99968z.com | jinlong01.com | www.28758q.com | www.k94600.com | 76543h.com | 473041.com | www.63606v.com | 866666r.com | feicai0411.com | www.4996fj.com | www.186756.com | 73055g.com | www.5099cc.com | www.383571.com | zb182.com | www.50999r.com | www.485648.com | 6150l.com | www.jz928.com | www.270648.com | 2613j.com | www.185142.com | www.57578a.com | 8901k.com | www.88325f.com | dzj223.com | www.407878.com | www.pj88.com | 22556l.com | www.21365oo.com | www.71233d.com | 30007l.com | www.betqam.com | www.cp8006.cc | 51335f.com | www.c44ww.com | www.324677.com | 6830e.com | www.ag3333.com | payu360.com | www.995e.net | www.36166p.com | 463.com | www.dy4488.com | www.369053.com | 2613u.com | www.flb177.com | 77605z.com | www.375375d.com | www.996763.com | 983888w.com | www.ag0234.com | 4405596.com | www.55268kk.com | www.8499p.com | 4152u.com | www.16181j.com | 41178982.com | www.yh7890.com | www.21202s.com | 3662p.com | www.6776yy.com | dh08199.com | www.76543p.com | www.5095c.com | qpby2277.com | www.80188j.com | 36404444.com | www.hg0998.com | www.853053.com | 500000437.com | www.58qp.cc | 496ii.com | www.c558.vip | 50067.com | www.365815h.com | www.qmfc1.com | 33ff940.com | www.48330u.com | 6002t.com | www.?28558.com | p47479.com | www.16297755.com | www.660665.com | 8159ll.cc | www.65707r.com | 520159407.com | www.73990c.com | hg986.com | www.751cp33.com | 8290a.com | www.04592004.com | www.506931.com | www.gef888.com | www.zfcp9.com | 3225a.com |