• <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.bet365605.com | www.ozhou9.com | l2306.com | www.958661.com | 3189ii.com | www.526052.com | www.hg068008.com | 4182006.com | www.609814.com | www.hyl8.com | 2418j.com | www.178982.com | www.3157u.com | 56728h.com | www.177806.com | www.71071r.com | 36500365.com | 7727.com | www.fg9903.com | www.yl78776.com | 2019rr.cc | www.777577.com | www.hg3636.com | 4260033.com | www.z77929.com | www.msc77.la | 9994.com | www.501254.com | www.386464.com | 218jc.com | www.081506.com | www.4996jc.com | 3049l.com | 500000796.com | www.75600d.com | www.7720v.com | 86811oo.com | www.3a434.com | www.358888f.com | 1213633.com | www.819770.com | www.58665z.com | 0010422.com | 3616.com | www.66621j.com | www.qxw150.com | 40033k.com | www.221375.com | www.30350x.com | www.2222wnsr.com | 22299uu.com | www.976550.com | www.rg777.com | a2894.com | 66681l.com | www.99638n.com | www.790808.com | JS1388e.com | 31325b.com | www.ihg5599.com | www.ra8804.com | 8037nnn.com | www.036874.com | www.99094o.com | www.2078b.com | cc67890.com | www.106167.com | www.48330i.com | www.16639.com | 4288c.com | www.60007u.com | www.954321u.com | www.hg3756.com | 8547u.com | 6220.com | www.628987.com | www.88325o.com | www.dwc4.com | 2334vip6.com | 69111z.com | www.c6770.com | www.55070z.com | www.23776.com | 4461a.com | www.36788e.com | www.78949j.com | www.dzcp1111.com | www.65476600.com | 55331l.com | 80567b.com | www.cb3788.com | www.8645002.com | www.21365hh.com | 80368d.com | 6261r.com | www.c6356.com | www.77780yh.com | www.223aa.net | 64111v.com | a83377.com | www.444539.com | www.x33789.com | www.d22255.com | www.147755.com | 04666m.com | 4694.com | www.713799.com | www.585732.com | www.34311.com | www.kb840.com | z3405.com | 1384.com | www.068639.com | www.23579d.com | www.2021a.com | www.6008876.com | www.77764400.com | 4809p.com | 4048vip9.com | 068.cc | www.560926.com | www.83033z.com | www.673888q.com | www.pj6366.com | www.g6tk.com | 923130.com | 58222n.com | 6137g.com | www.513061.com | www.50732l.com | www.ag3344.com | www.932222.com | www.362848.com | 0066886.com | 38365j.com | v2649.com | www.050236.com | www.slyl2.com | www.29468.com | www.mgm868002.com | www.061626.com | www.yh17.com | 572755g.com | jing555.com | 3950z.com | 019222222.com | www.314877.com | www.44gpc.com | www.ampj3435.com | www.55676g.com | www.9b006.com | www.092365.com | www.88807v.com | www.1869c.com | 00443015.com | 3522s.vip | 0206.com | 444000ee.com | mgm.am | mf704.com | 50024466.com | ctxcp68.com | www.196075.com | www.791637.com | www.3126p.com | www.99638n.com | www.m94600.com | www.678js555.com | www.ag0234.com | www.509029.com | www.447334.com | www.pj1314.com | www.21365yy.com | www.xh9111.com | 33115oo.com | 0747p.com | 00773xx.com | 657094.com | 7032004.com | 2077.am | 3957e.com | 883399f.com | 86811oo.com | 4444sands.com | 30174455.com | 0805n.com | 21579455.com | 00337076.com | 30019pp.com | 5446jj.com | 30006k.com | 66300vip13.com | www.60123a.com | www.150882.com | www.320992.com | www.339125.com | www.384077.com | www.557032.com | www.610026.com | www.629021.com | www.628987.com | www.596702.com | www.570981.com | www.507633.com | www.504277.com | www.420611.com | www.388634.com | www.196146.com | www.106576.com | www.77802i.com | bet28e.com | vip31446.com | 86811c.com | botanvip.com | 4556r.com | 88851d.com | yhliaoning.vip | 3225t.com | 55155n.com | www.56733y.com | www.pj0908.com | www.vns343.com | www.946466.com | www.hg8376.com | www.79500q.com | www.829797d.com | www.i3410.com | www.17jsc.com | www.97655j.com | www.3416i.com | www.775704.com | www.295207.com | 4809d.com | bb8888-2.com | 47751.com | 50099z.com | zhcpdd.com | www.jsth518.com | www.900591.com | www.kj33.com | www.55mgm777.com | www.4923q.com | www.3668s.com | www.595301.com | 68228t.com | 2223865.com | js2.cc | 68228o.com | 8052.am | www.2846c.com | www.kj207.com | www.38138t.com | www.5953588.com | www.9356p.com | www.587502.com | 0208vv.com | 66458y.com | 98955a.com | qy93.vip | www.508814.com | www.26123aa.com | www.6768991.com | www.zcwf4.com | www.099323.com | 17794444.com | 001908.com | 1775w.com | www.js7669.com | www.5309789.com | www.js02347.com | www.tang777.com | www.151376.com | v2894.com | 88442007.com | www.67797h.com | www.72msxfpta.com | www.dd4625.com | www.03czj.com | 033e.net | r93.com | xpj70064.com | www.992254.com | www.4196m.com | www.36166j.com | www.423552.com | 56987rr.com | p5555.com | www.88837n.com | www.dzj0770.com | www.bet73l.com | www.540477.com | 80850o.com | qianma9.cn | www.10899d.com | www.551c93.com | www.3978z.com | www.373553.com | 1750.com | 51200aa.com | www.291234.com | www.99094l.com | www.775780.com | 569pj.com | 998h.cc | www.vns88811.com | www.6688kcd.com | www.899621.com | 2019rr.cc | 28839l.com | www.js81122.com | www.3w444.com | www.832793.com | 61320044.com | 7335z.com | www.5049v.com | www.71399n.com | 520666.com | 7773805.com | www.333133u.com | www.80188q.com | www.48wcp.com | 3242q.com | 2613x.com | www.1829w.com | www.37266.co | tz22777.com | 33111177.com | www.24suncity.com | www.bmw8004.com | www.308069.com | yabo535.com | www.3459j.com | www.xj6001.com | www.673266.com | 01885q.com | www.76060t.com | www.4196t.com | www.681090.com | 4546.com | www.76543c.com | www.30350s.com | www.444160.com | yuhe.ooo | www.0659ks.com | www.28891d.com | 3678uuu.com | 33313o.com | www.934498.com | www.444xm.cc | 7xh.vip | www.110022.com | www.42070017.com | icesnow.com.cn | xpj78333.com | www.98698d.com | www.987969.com | w08199.com | www.q27229.com | www.flb177.com | 8381jj.com | blr86.com | www.dfh271.com | www.cp8001.cc | jidu77.com | www.44221.com | www.4323j.com | 5003ii.com | www.7435p.com | www.js89q.vip | biying950vip.com | 2643v.com | www.3066zz.com | www.180121.com | bet28w.com | www.8850w9.com | www.375477.com | ahg1088.com | www.4212b.com | www.579699.com | 22zz8332.com | www.00773k.com | www.306061.com | y00000.com | www.89677s.com | www.52303i.com | 8148999.com | www.http://1018js.com/ | www.024028.com | 22556d.com | www.540640b.com | rbbet77.com | 6601.cc | www.69567t.com | 99999ylg.com | www.ww.t7888.com | www.61233t.com | 2490o.com | www.444475.com | www.aa0090.com | 00773p.com | www.88166y.com | www.60123e.com | yun8123.com | www.88599.com | 55899q.com | www.dhy35.com | www.hx6691.com | 40400.com | www.dzj0555.com | 00048j.com | www.060xpj.com | www.871453.com | 998p.cc | www.38365d.com | www.342977.com | 6868ll.cc | www.1100.net | 116060.com | www.2822msc.com | www.188932.com | 12742j.com | www.0270z.com | r1458.com | www.k70.com | bm1288.cc | www.v0040.com | www.6661a.cc | 61323366.com | www.flb277.com | 3404p.cc | www.27363w.com | 3685e.com | www.7025p.com | www.777768a.com | hg22211.com | www.89777v.com | tt6832.com | www.bet91489.com | bojue009.com | www.2005132.com | www.037211.com | www.hg888.me | www.865850.com | 566670066.com | www.0270i.com | ylzz1115.com | www.362bbb.com | 2008rr.com | www.pj88r.com | 73567tg13.com | www.3814.hk | 7196hh.com | www.770444.com | www.luck887.com | www.zun371.com | www.29277k.com | 424138.com | www.ykylc07.com | qq67890.com | www.y8817.com | 85850.com | www.1851137.com | 9420j.com | www.99113k.com | 8003822.com | www.rgcp555.com | 22207p.com | www.77731p.com | 3258r.com | www.bai3355.com | 228888i.com | www.tm71.com | 1389kk.com | www.m456x.com | 188qq66.com | www.0057f.com | 73567tg18.com | www.8313o.com | f40033.com | www.694942.com | 3032.com | www.6868.tw | 3846w.com | www.62778855.com | 20073365.com | www.54400g.com | x86.com | www.1035l.com | bet36530000.com | www.c144.vip | www.alpk77.com | www.208990.com | www.487432.com | 7334u.com | www.caipiao33.com | 1654j.com | www.69989e.com | 3552n.com | www.12136.com | 3844.am | www.318548.com | www.bet365605.com | www.230967.com | www.ffvns.com | 13222u.com | www.3157j.com | pj520.com | www.6939a.com | 6868rr.cc | www.927793.com | 56988c.com | www.xpj13666.com | 06389797.com | www.cc55826.com | www.26878j.com | 22998332.com | www.839658.com | www.9679n.com | 033o.net | www.xpj556677.com | 7599zz.com | www.77801h.com | 1479r.com | www.251750.com | www.267838.com | 88894f.com | www.68993227.com | 7792b.com | www.526031.com | www.470555.com | 22225002.com | www.sdsy.com | www.34586.com | c388v.com | www.80969s.com | 67890cc.com | www.781566.com | www.88837j.com | 38244k.com | www.3421e.com | 2764.com | www.116205.com | www.858958.com | 3662m.com | www.3890j.com | www.330099e.com | 809044.com | www.56011i.com | 38345y.com | www.081503.com | www.hg173b.com | nn500u.com | www.620477.com | www.swty566.com | m0007.com | www.c1360.com | www.8885554.com | jxf963.com | www.9356d.com | www.yxlmwx.net | y68com | www.80075m.com | www.8694w.com | am2982.com | www.pj99z.com | www.365109c.com | 7196a.com | www.81608u.com | www.1cw9.com | 50024499.com | www.290201.com | www.10054455.com | 7599ss.com | www.41518j.com | www.js466.com | 53200000.com | www.qilc7.com | www.9009798.com | 4022t.com | www.602327.com | www.4963n.com | 97799e.com | 20054466.com | www.88qiji.com | www.32126k.net | jszg2.com | www.00840s.com | www.js3555.com | mmm4255.com | www.514377.com | www.4400ra8.com | 3005647.com | j5429.com | www.3978r.com | www.107898.com | 9646q.com | www.629053.com | www.00772d.com | 6641u.com | e1458.com | www.33112g.com | www.382888.com | pj200.cc | 1389.com | www.7886266.com | www.32666j.com | 5309b.com | www.602266.com | www.7225u.com | www.89422.com | t365j.com | www.959553.com | www.9737ll.me | www.6372013.com | 18775l.com | www.c8712.com | www.4963yy.com | 1592q.com | 1775ww.com | www.998855a.com | www.7415zz.com | www.81866q.com | 6594jj.com | www.906511.com | www.00778g.com | www.shenbo558.com | 91019.com | www.332052.com | www.780780f.com | www.88850z.com | 80368ww.com | 2649rr.com | www.39957c.com | www.85857a.com | www.86611u.com | 111hg88.com | www.545669.com | www.9187u.com | www.ubo3388.com | ying58.xyz | 8888jdb.com | www.33yfa.com | www.bwinyz23.com | www.87680t.com | 4556k.com | www.36788i.com | www.988046.com | www.56655q.com | www.04222e.com | 00005145.com | 4647.net | www.9155e.cc | www.4996cs.com | www.5178722.com | 57157h.com | itkvm.net | www.6769r.com | www.4996jc.com | www.tyc6588.com | 00048g.com | 818555.vip | www.630367.com | www.725158.com | www.281106.com | www.hg1895.com | 4165t.com | bet2080.com | www.hm6788.com | www.280sun.com | www.4646123.com | hgw168e.com | 3522w.cc | 55818r.com | www.717772.com | www.vn888123.cc | www.55526h.com | www.yh03456.com | 20160044.com | 3678aaa.com | www.314077.com | www.50051f.com | www.6880ss.com | www.282456.com | 80878q.com | 36405588.com | 1665v.com | www.332807.com | www.34788h.com | www.063801p.com | www.43282.com | www.32126w.net | yhguangxi.vip | z45638.com | 630.cc | www.607263.com | www.06662.com | www.129088.com | www.js403.com | www.77yh765.com | 7989g.com | 4411.com | 3844oo.com | www.001562.com | www.hy6933.com | www.906009.com | www.g80288.com | www.172255.com | www.7025q.com | 272h.net | 6150z.com | 2459c.com | 5443e.com | www.270667.com | www.1368l.cc | www.0028229.com | www.55060y.com | www.hg9010.com | www.2846g.com | hg999333.com | blhvip77.com | 3846ff.com | 20054455.com | 4066c.com | 22299mm.com | www.598061.com | www.1368v.cc | www.99788j.com | www.980879.com | www.71071a.com | www.www-26499.com | www.hg219.com | www.yh6878.com | bet3659092.com | zb152.com | 9539p.com | 5478.com | un55.com | 88851t.com | sb5508.com | 28837711.com | www.177949.com | www.610875.com | www.flcb6.com | www.39500h.com | www.954321i.com | www.1434k.com | www.3032dd.com | www.bwinyz35.com | www.92776.com | www.710jcjc.com | www.91293.com | www.1596c.com | www.78929.com | www.7830r.com | www.xl1818.com | www.yyhbet6.com | 9539i.com | 7141oo.com | 1077iii.com | 5589h.com | tyc71.com | 11442007.com | 3522l.vip | wnsr8807.com | 20055533.com | 33ss8332.com | 皇冠总公司.com | tt00558.com | 089776.com | 2146c.com | 99112007.com | 3301866.com | 5443r.com | jsjlb5.com | 168cp-v.com | da611.com | 858648.com | 11163399.com | www.c50336.com | www.38200f.com | www.63877l.com | www.hgbet00.com | www.8694n.com | www.2888.so | www.hg6288.com | www.15b19.net | www.66458v.com | www.hg8525.com | www.3362msc.com | www.77731q.com | www.4972l.com | www.475333.com | www.91779i.com | www.23819.ag | www.ejylc10.com | www.91junzi.com | www.23579c.com | www.bai355.com | www.987581.com | www.586775.com | www.083016.com | 2642004.com | bg7666.com | 1654t.com | 20188t.com | 0638.net | a2554.com | 3424w.com | www.hgbet33.com | www.3353k.com | www.4516.com | www.5309789.com | www.130256.com | www.0601x.com | www.5441j.com | www.763605.com | www.217556.com | 65005d.com | 0199955.com | hg345.com | 6261u.com | laohu88.vip | www.91684.com | www.808msc.com | www.xpj556677.com | www.495414.com | www.51515l.com | www.816830.com | targe889q.net | 444365.ag | 788.cc | 4340y.com | js333044.com | www.2061368.com | www.99291a.com | www.556255.com | www.js18686.com | www.qj35.com | www.326675.com | 3121qq.com | 01234n.com | 4028722.com | www.hg1020.net | www.vns77999.com | www.9737zz.com | www.660066.vip | www.ovfd2.com | www.61233e.com | 0234u.com | 6869g.com | ms777.com | www.7392022.com | www.tyc2633.com | www.yh70123.com | www.cp3.mobi | 0694.com | fa8888.com | 8028522.com | www.hg00895.com | www.jbb2017.com | www.12136x.com | www.5441m.com | www.167090.com | 52688.com | 50099h.com | www.jinshagg.com | www.445466.com | www.86339t.com | www.tang777.com | 01885j.com | 0289f.com | f2649.com | www.710868.com | www.b30666.com | www.98528c.com | www.396990.com | aipin88.me | 22299hh.com | www.21365zz.com | www.38345c.com | www.bet73q.com | www.501274.com | 22886.com | 3136oo.com | www.110978.com | www.08881.com | www.6969a.cc | 06385050.com | 2454888.com | www.pj0088.com | www.998855d.com | www.0194002.com | www.370933.com | 9411ccc.com | 97799x.com | www.789030.com | www.3775v.com | www.648377.com | 12742m.com | 66876l.com | www.jty649.com | www.48330y.com | www.497918.com | 33382rr.com | 58802i.com | www.hjcp6.com | www.95333w.com | 7605z.com | 4288oo.com | www.4972ss.com | www.4058kk.com | www.hx3355.com | 876878t.com | 500000476.com | www.61808.com | www.2418s.com | www.040451.com | 51133ii.com | www.8694j.com | www.1754o.com | www.840689.com | vip31445.com | www.68666u.com | www.4972g.com | www.66yfz.com | 2649v.com | 500000351.com | www.c44gg.com | www.81233cc.com | 2247rr.com | 3121.com | www.hjcp9.com | www.9999y.cc | 1775i.com | 5004yy.com | www.50999i.com | www.hqcp1.com | 22117m.com | www.88864400.com | www.bwinyz41.com | www.792587.com | 1468rrr.com | www.67797u.com | www.r999996.com | www.186327.com | 4808u.com | www.xh4499.com | www.73166k.com | 470178.com | 33567m.com | www.848777g.com | www.689613.com | 063910.com | www.dhygw994.com | www.ribo12.cc | yeba17.com | 2677hhh.com | www.hg702.com | www.783306.com | 2222k00.com | www.224333222.com | www.28462000.com | 88051.net | www.un3355.com | www.88325g.com | www.140018.com | r2146.com | www.20199oo.com | www.931669.com | 7r3777.com | www.73256.com | www.50732m.com | hg28.com | www.7830z.com | www.004829.com | hhh2848.com | www.hg44403.com | www.pj55713.com | 142788.com | 2400010.com | www.73990n.com | www.35155i.com | 1077ggg.com | www.89677s.com | www.160881.com | a2306.com | www.b35gg.com | www.109882.com | 83377o.com | www.4996dt.com | 188711.com | 6220gg.com | www.89386.com | b99474.com | 33665003.com | www.9187v.com | 2851u.com | www.lb0022.com | www.730555h.com | vic9308.com | www.56520o.com | www.87668j.com | 8547kk.com | www.09856.com | www.mcw6.com | 3522hh.cc | www.tt15.com | www.355205.com | ddd2267.com | www.6880cc.com | bet99959.com | www.hjdc2000.vip | www.22211.am | 496zz.com | www.666549.com | www.805357.com | zz00558.com | www.8080999e.com | 3122dd.com | www.9374p.com | www.81233r.com | 70082.com | www.097779f.com | www.500871.com | vip4114.com | www.742388.com | 1624cc.com | www.hg978978.com | www.hy5509.com | 84494433.com | www.69989f.com | 3467t.com | www.vv1112.com | www.hw8222.com | 2127jj.com | www.63606w.com | am2982.com | www.9822msc.com | www.640118.com | 2546v.com | www.917004.com | wb3223.com | www.01.bet | 878365jj.com | www.hg7288.com | www.2350c.com | 2096w.com | www.88325y.com | 058789.com | www.56754.com | www.357411.com | www.k8084.com | www.54400j.com | 36405511.com | www.83377.com | 33p88.cc | www.3131666.com | rgcp.com | www.s30226.com | www.938527.com | 2677vvv.com | www.pj56g.com | 7003t.com | www.http://07771.com/ | 5003ww.com | www.444412.com | www.43131z.com | www.76543z.com | www.927320.com | 650pj.com | www.36166k.com | mm99966.com | www.747365a.com | shen5533.com | www.45598v.com | 131z.net | www.796813.com | 02edu.com | www.777794.com | 30019t.com |