国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

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

韶關(guān)市建設(shè)工程造價(jià)網(wǎng)站百度指數(shù)代表什么

韶關(guān)市建設(shè)工程造價(jià)網(wǎng)站,百度指數(shù)代表什么,高端網(wǎng)頁建設(shè)公司,北京中高端網(wǎng)站建設(shè)引言 在日常開發(fā)中,我們一些業(yè)務(wù)場(chǎng)景需要用到發(fā)送短信通知。然而實(shí)際情況考慮到不同廠商之間的價(jià)格、實(shí)效性、可能會(huì)出現(xiàn)的情況等 我們的業(yè)務(wù)場(chǎng)景往往會(huì)接入多個(gè)短信廠商來保證我們業(yè)務(wù)的正常運(yùn)行,而不同的短信廠商(如阿里云短信、騰訊云短信…

引言

在日常開發(fā)中,我們一些業(yè)務(wù)場(chǎng)景需要用到發(fā)送短信通知。然而實(shí)際情況考慮到不同廠商之間的價(jià)格、實(shí)效性、可能會(huì)出現(xiàn)的情況等 我們的業(yè)務(wù)場(chǎng)景往往會(huì)接入多個(gè)短信廠商來保證我們業(yè)務(wù)的正常運(yùn)行,而不同的短信廠商(如阿里云短信、騰訊云短信等)提供了不同的接口,如果我們要支持多個(gè)短信廠商,代碼中就會(huì)充斥著各種 new 操作來創(chuàng)建不同的短信服務(wù)實(shí)例。

假設(shè)在不使用設(shè)計(jì)模式的情況下,我們的代碼可能會(huì)這樣寫:

<?php
// 如果要發(fā)送阿里云短信
$aliSms = new AliSms();
$aliSms->send($phoneNumber, $message);// 如果要發(fā)送騰訊云短信
$tenSms = new TencentSms();
$tenSms->send($phoneNumber, $message);

這樣做的問題是顯而易見的:

  1. 代碼耦合度高
    每當(dāng)需要引入新的短信廠商,代碼中都必須手動(dòng)創(chuàng)建該廠商的實(shí)例,導(dǎo)致代碼與具體廠商類的耦合度非常高,不易維護(hù)。
  2. 擴(kuò)展性差
    如果要增加或替換短信廠商,就需要在每個(gè)發(fā)送短信的地方都修改代碼。這不僅增加了出錯(cuò)的風(fēng)險(xiǎn),還降低了代碼的可擴(kuò)展性。
  3. 不符合開閉原則
    代碼應(yīng)該是對(duì)擴(kuò)展開放、對(duì)修改封閉的。而上述代碼違背了這一原則,因?yàn)槊看卧黾有聫S商時(shí)都需要修改已有代碼。

為了解決這些問題,我們可以引入工廠模式,通過一個(gè)工廠類來負(fù)責(zé)短信服務(wù)的創(chuàng)建,從而實(shí)現(xiàn)代碼的解耦和易擴(kuò)展。

工廠模式

工廠模式(Factory Pattern)是一種創(chuàng)建型設(shè)計(jì)模式,它通過定義一個(gè)接口或抽象類,將對(duì)象的創(chuàng)建過程封裝在工廠類中,而不是直接在代碼中實(shí)例化對(duì)象。工廠模式的核心思想是通過工廠類來決定實(shí)例化哪一個(gè)具體類,從而使客戶端代碼不需要關(guān)心對(duì)象的創(chuàng)建邏輯。

工廠模式的原理

工廠模式的原理是將對(duì)象的創(chuàng)建過程封裝在一個(gè)獨(dú)立的工廠類中。工廠類通常根據(jù)傳入的參數(shù)或配置信息,決定返回哪個(gè)具體的類實(shí)例。這樣一來,客戶端代碼只需要調(diào)用工廠類提供的創(chuàng)建方法,而不需要直接調(diào)用構(gòu)造函數(shù),從而實(shí)現(xiàn)對(duì)象的創(chuàng)建與客戶端的分離。


工廠模式的實(shí)現(xiàn)一般包含以下幾部分:

  1. 產(chǎn)品接口或抽象類:定義所需的產(chǎn)品類型,所有的具體產(chǎn)品類都要實(shí)現(xiàn)該接口或繼承該抽象類。
  2. 具體產(chǎn)品類:實(shí)現(xiàn)或繼承產(chǎn)品接口或抽象類,代表具體的產(chǎn)品。
  3. 工廠類:封裝創(chuàng)建對(duì)象的邏輯,根據(jù)客戶端的需求,生成并返回對(duì)應(yīng)的產(chǎn)品實(shí)例。

工廠模式的示意圖

工廠模式的結(jié)構(gòu)通常如下:

  • 客戶端 ——> 工廠類 ——> 產(chǎn)品接口/抽象類 ——> 具體產(chǎn)品類

這種結(jié)構(gòu)將對(duì)象的創(chuàng)建過程從客戶端代碼中移除,交由工廠類處理,從而實(shí)現(xiàn)了創(chuàng)建與使用的解耦。


工廠模式的適用場(chǎng)景

工廠模式適用于以下幾種場(chǎng)景:

  1. 需要生成多個(gè)具有相似特征的對(duì)象
    如果一個(gè)系統(tǒng)中需要?jiǎng)?chuàng)建多個(gè)相似的對(duì)象,且這些對(duì)象具有相同的接口或抽象類,工廠模式可以將對(duì)象的創(chuàng)建集中管理,方便后期的擴(kuò)展。
  2. 系統(tǒng)的擴(kuò)展性要求較高
    如果一個(gè)系統(tǒng)可能會(huì)頻繁地?cái)U(kuò)展新功能,需要新增類型的對(duì)象,工廠模式能使新產(chǎn)品的引入變得簡(jiǎn)單。新增產(chǎn)品時(shí)只需要增加一個(gè)具體產(chǎn)品類和相應(yīng)的工廠邏輯,而不需要修改原有的客戶端代碼。
  3. 隱藏對(duì)象的創(chuàng)建邏輯
    如果對(duì)象的創(chuàng)建過程比較復(fù)雜,不希望讓客戶端了解創(chuàng)建細(xì)節(jié),通過工廠模式可以將創(chuàng)建邏輯封裝在工廠類中,讓客戶端只關(guān)心如何使用對(duì)象,而不關(guān)心如何創(chuàng)建對(duì)象。

工廠模式的實(shí)際業(yè)務(wù)應(yīng)用場(chǎng)景

  1. 多渠道通知發(fā)送
    在消息通知系統(tǒng)中,可能需要支持多種通知渠道,比如短信、郵件、微信、Push 推送等。工廠模式可以用于創(chuàng)建不同的通知服務(wù)實(shí)例,幫助根據(jù)不同渠道自動(dòng)生成相應(yīng)的通知對(duì)象,使得系統(tǒng)可以方便地切換或擴(kuò)展新渠道。
  2. 支付渠道對(duì)接
    支付系統(tǒng)中通常需要對(duì)接多個(gè)支付渠道,如支付寶、微信支付、PayPal 等。工廠模式可以根據(jù)用戶的選擇或系統(tǒng)配置,創(chuàng)建相應(yīng)的支付實(shí)例,從而使系統(tǒng)更加靈活,方便地接入新支付渠道。
  3. 數(shù)據(jù)庫連接管理
    在復(fù)雜應(yīng)用中,可能需要使用多種數(shù)據(jù)庫(例如 MySQL、MongoDB、Redis 等)來處理不同的數(shù)據(jù)存儲(chǔ)需求。工廠模式可以根據(jù)需求創(chuàng)建不同的數(shù)據(jù)庫連接實(shí)例,使代碼解耦,并方便地切換或擴(kuò)展數(shù)據(jù)庫支持。
  4. 文件解析
    系統(tǒng)中需要解析多種文件格式(如 JSON、XML、CSV 等)時(shí),可以使用工廠模式創(chuàng)建對(duì)應(yīng)的解析器對(duì)象。例如,創(chuàng)建 JSON 解析器或 CSV 解析器,按需解析不同格式的文件。
  5. 日志系統(tǒng)
    日志系統(tǒng)中可能會(huì)使用多種輸出方式,比如文件、數(shù)據(jù)庫、遠(yuǎn)程服務(wù)器等。工廠模式可以根據(jù)配置創(chuàng)建不同的日志對(duì)象,以支持多種日志寫入方式,并能靈活地調(diào)整日志輸出策略。
  6. 用戶權(quán)限管理
    對(duì)于復(fù)雜權(quán)限管理系統(tǒng),不同角色可能需要不同的權(quán)限實(shí)例。工廠模式可以用于根據(jù)用戶角色創(chuàng)建對(duì)應(yīng)的權(quán)限管理對(duì)象,從而更好地管理和維護(hù)權(quán)限規(guī)則。
  7. 多語言支持
    在多語言應(yīng)用中,不同語言的翻譯方式可能不同。工廠模式可以根據(jù)語言代碼生成對(duì)應(yīng)的翻譯服務(wù)實(shí)例,以便于按需加載不同的翻譯邏輯。
  8. 圖表生成
    在數(shù)據(jù)可視化系統(tǒng)中,可能會(huì)支持多種圖表類型(如柱狀圖、折線圖、餅圖等)。工廠模式可以用于根據(jù)用戶選擇生成不同的圖表對(duì)象,以便動(dòng)態(tài)生成所需的圖表類型。

在代碼中使用工廠模式的好處

使用工廠模式帶來了多個(gè)顯著的好處,使得代碼更加靈活、易維護(hù)和可擴(kuò)展:

  1. 解耦創(chuàng)建和使用
    工廠模式將對(duì)象的創(chuàng)建和使用分離,使客戶端代碼無需關(guān)心對(duì)象的具體實(shí)現(xiàn)類,也不需要直接創(chuàng)建實(shí)例。這種解耦使得代碼更靈活,便于在不同的情況下切換不同的實(shí)現(xiàn)。
  2. 提高代碼的可維護(hù)性
    工廠模式將對(duì)象的創(chuàng)建邏輯集中在工廠類中,客戶端代碼只與工廠類交互。當(dāng)需要添加新的對(duì)象類型或修改對(duì)象的創(chuàng)建邏輯時(shí),只需更改工廠類,而無需修改客戶端代碼,大大減少了出錯(cuò)的風(fēng)險(xiǎn)。
  3. 符合開閉原則
    工廠模式使代碼更符合開閉原則(對(duì)擴(kuò)展開放,對(duì)修改封閉)。如果需要添加新的產(chǎn)品類,只需在工廠類中增加對(duì)應(yīng)的創(chuàng)建邏輯,而無需修改現(xiàn)有的客戶端代碼或其他產(chǎn)品類代碼,減少了代碼的修改需求。
  4. 增強(qiáng)代碼的可擴(kuò)展性
    當(dāng)需要增加新的產(chǎn)品類型時(shí),只需創(chuàng)建一個(gè)新的產(chǎn)品類,并在工廠類中定義相應(yīng)的創(chuàng)建邏輯。工廠模式使得擴(kuò)展新產(chǎn)品變得簡(jiǎn)單,而不需要更改已有代碼結(jié)構(gòu)。
  5. 簡(jiǎn)化客戶端代碼
    工廠模式將對(duì)象創(chuàng)建邏輯封裝起來,簡(jiǎn)化了客戶端代碼,使其專注于如何使用對(duì)象,而不是關(guān)心如何創(chuàng)建對(duì)象。這使得代碼更加清晰和易于理解。

通過這些好處,工廠模式讓代碼具備了更好的結(jié)構(gòu)和維護(hù)性,尤其適用于需要頻繁創(chuàng)建和擴(kuò)展對(duì)象的場(chǎng)景。


工廠模式的類型

在工廠模式中,根據(jù)需求的不同,常見的有三種主要變體:簡(jiǎn)單工廠模式、工廠方法模式抽象工廠模式。這些模式的主要目標(biāo)都是將對(duì)象的創(chuàng)建與使用解耦,但在設(shè)計(jì)和使用場(chǎng)景上各有不同。

1. 簡(jiǎn)單工廠模式

簡(jiǎn)單工廠模式(Simple Factory Pattern)是工廠模式的基礎(chǔ)實(shí)現(xiàn),通過一個(gè)工廠類的靜態(tài)方法,根據(jù)傳入的參數(shù)來創(chuàng)建并返回不同的產(chǎn)品對(duì)象。這種模式使用簡(jiǎn)單,便于理解。

  • 特點(diǎn):通過一個(gè)靜態(tài)方法來創(chuàng)建對(duì)象,工廠類負(fù)責(zé)所有產(chǎn)品實(shí)例的創(chuàng)建。
  • 適用場(chǎng)景:適用于產(chǎn)品種類較少、對(duì)象創(chuàng)建邏輯簡(jiǎn)單的場(chǎng)景。
  • 缺點(diǎn):違反開閉原則,當(dāng)新增產(chǎn)品時(shí)必須修改工廠類,系統(tǒng)擴(kuò)展性較低。
示例代碼
class SmsFactory {public static function create($type) {switch ($type) {case 'Ali':return new AliSms();case 'Tencent':return new TencentSms();default:throw new Exception("未知短信類型");}}
}

2. 工廠方法模式

工廠方法模式(Factory Method Pattern)為每個(gè)產(chǎn)品提供一個(gè)具體的工廠類,通過實(shí)現(xiàn)一個(gè)工廠接口,負(fù)責(zé)創(chuàng)建各自的產(chǎn)品。這種方式將工廠類分離,符合開閉原則。

  • 特點(diǎn):每個(gè)產(chǎn)品類都有一個(gè)對(duì)應(yīng)的工廠類,通過實(shí)現(xiàn)工廠接口來創(chuàng)建具體產(chǎn)品。
  • 適用場(chǎng)景:適合產(chǎn)品種類多、頻繁擴(kuò)展新產(chǎn)品的情況,便于維護(hù)。
  • 缺點(diǎn):增加了系統(tǒng)的復(fù)雜度,特別是當(dāng)產(chǎn)品種類較多時(shí),會(huì)有大量工廠類。
示例代碼
interface SmsFactory {public function create();
}class AliSmsFactory implements SmsFactory {public function create() {return new AliSms();}
}class TencentSmsFactory implements SmsFactory {public function create() {return new TencentSms();}
}

3. 抽象工廠模式

抽象工廠模式(Abstract Factory Pattern)是一種更為復(fù)雜的工廠模式,用于創(chuàng)建多個(gè)相關(guān)的產(chǎn)品對(duì)象(即產(chǎn)品族)。每個(gè)具體工廠負(fù)責(zé)創(chuàng)建一組相關(guān)的對(duì)象,從而保證產(chǎn)品族的一致性。

  • 特點(diǎn):可以創(chuàng)建一組相關(guān)或相互依賴的對(duì)象(產(chǎn)品族),每個(gè)具體工廠實(shí)現(xiàn)多個(gè)工廠接口,負(fù)責(zé)創(chuàng)建整個(gè)產(chǎn)品族。
  • 適用場(chǎng)景:當(dāng)系統(tǒng)需要多個(gè)相互關(guān)聯(lián)的對(duì)象組合時(shí)(例如支持多平臺(tái)的 UI 組件庫)。
  • 缺點(diǎn):擴(kuò)展新產(chǎn)品族較為復(fù)雜,需要修改或增加多個(gè)類。
示例代碼
interface SmsAbstractFactory {public function createSms();public function createTemplate();
}class AliSmsFactory implements SmsAbstractFactory {public function createSms() {return new AliSms();}public function createTemplate() {return new AliTemplate();}
}class TencentSmsFactory implements SmsAbstractFactory {public function createSms() {return new TencentSms();}public function createTemplate() {return new TencentTemplate();}
}

工廠模式類型的區(qū)別與適用場(chǎng)景總結(jié)

工廠模式類型特點(diǎn)適用場(chǎng)景缺點(diǎn)
簡(jiǎn)單工廠模式單一工廠類,通過靜態(tài)方法創(chuàng)建對(duì)象產(chǎn)品種類少、擴(kuò)展性需求低不符合開閉原則,擴(kuò)展性差
工廠方法模式每個(gè)產(chǎn)品對(duì)應(yīng)一個(gè)工廠類,符合開閉原則產(chǎn)品種類多,需支持系統(tǒng)擴(kuò)展性增加系統(tǒng)復(fù)雜度,工廠類較多
抽象工廠模式可以創(chuàng)建多個(gè)相關(guān)對(duì)象(產(chǎn)品族),滿足復(fù)雜對(duì)象創(chuàng)建需求需要?jiǎng)?chuàng)建一組相關(guān)對(duì)象組合(產(chǎn)品族)擴(kuò)展復(fù)雜,類結(jié)構(gòu)較復(fù)雜

通過這種對(duì)比表格和示例代碼,讀者可以更清晰地了解不同工廠模式的特點(diǎn)與適用場(chǎng)景,并能根據(jù)項(xiàng)目需求選擇合適的工廠模式類型。


回到開頭 為了更好地管理多種短信廠商的集成,我們可以選擇使用工廠模式來設(shè)計(jì)短信發(fā)送邏輯。這樣一來,我們可以輕松地根據(jù)需求切換或添加新的短信廠商,而無需修改客戶端代碼。

設(shè)計(jì)步驟
  1. 定義一個(gè)短信接口:創(chuàng)建一個(gè) SmsServiceInterface,定義發(fā)送短信的基本方法,比如 send($phoneNumber, $message)。所有的具體短信服務(wù)(如阿里云、騰訊云)都將實(shí)現(xiàn)這個(gè)接口。

    interface SmsServiceInterface {public function send($phoneNumber, $message);
    }
    
  2. 創(chuàng)建具體的短信服務(wù)類:為每個(gè)短信廠商創(chuàng)建具體實(shí)現(xiàn)類,比如 AliSmsServiceTencentSmsService。每個(gè)類都實(shí)現(xiàn) SmsServiceInterface 接口,包含具體的發(fā)送邏輯。

    class AliSmsService implements SmsServiceInterface {public function send($phoneNumber, $message) {// 實(shí)現(xiàn)阿里云短信的發(fā)送邏輯}
    }class TencentSmsService implements SmsServiceInterface {public function send($phoneNumber, $message) {// 實(shí)現(xiàn)騰訊云短信的發(fā)送邏輯}
    }
    
  3. 創(chuàng)建短信工廠類:創(chuàng)建 SmsFactory 類,根據(jù)傳入的廠商類型來決定返回的短信服務(wù)實(shí)例。這樣一來,客戶端代碼就不需要直接實(shí)例化具體的短信類,而是通過工廠類來獲取相應(yīng)的實(shí)例。

    class SmsFactory {public static function create($type) {switch ($type) {case 'Ali':return new AliSmsService();case 'Tencent':return new TencentSmsService();default:throw new Exception("未知短信類型");}}
    }
    
  4. 使用工廠類發(fā)送短信:客戶端代碼只需調(diào)用工廠類的 create() 方法來獲取對(duì)應(yīng)的短信實(shí)例,然后調(diào)用 send() 方法即可。這樣,客戶端代碼無需關(guān)心具體的實(shí)現(xiàn),只需使用統(tǒng)一的接口。

    $smsService = SmsFactory::create('Ali');
    $smsService->send($phoneNumber, $message);
    
這樣設(shè)計(jì)的好處
  1. 降低耦合性
    客戶端代碼與具體的短信實(shí)現(xiàn)解耦,通過 SmsFactory 工廠類統(tǒng)一管理不同廠商的實(shí)例創(chuàng)建,客戶端只需知道接口而不需要知道具體實(shí)現(xiàn)。
  2. 提高擴(kuò)展性
    使用工廠模式后,如果要接入新的短信廠商(如華為云),只需增加一個(gè)新的實(shí)現(xiàn)類(如 HuaweiSmsService),并在工廠類中添加對(duì)應(yīng)的實(shí)例創(chuàng)建邏輯,而無需修改客戶端代碼。
  3. 符合開閉原則
    工廠模式允許我們?cè)诓恍薷目蛻舳舜a的情況下擴(kuò)展新功能,增強(qiáng)了代碼的靈活性和穩(wěn)定性。通過簡(jiǎn)單擴(kuò)展工廠類,我們便可以支持新的廠商或新的短信邏輯。
  4. 簡(jiǎn)化維護(hù)
    所有短信實(shí)例的創(chuàng)建都集中在 SmsFactory 中,便于管理。若有修改需求,例如調(diào)整具體廠商的實(shí)現(xiàn)邏輯,我們只需修改對(duì)應(yīng)的實(shí)現(xiàn)類,而不必在各處重復(fù)更改。

通過這種設(shè)計(jì),工廠模式讓短信發(fā)送邏輯更加靈活、可擴(kuò)展且便于維護(hù),為系統(tǒng)增加新的廠商支持變得輕松簡(jiǎn)單。這不僅提升了代碼質(zhì)量,也提高了系統(tǒng)的穩(wěn)定性。


最后

通過工廠模式,我們有效地將對(duì)象的創(chuàng)建過程與使用邏輯解耦,使系統(tǒng)的擴(kuò)展性和維護(hù)性得到了顯著提升。在多廠商短信發(fā)送的場(chǎng)景中,工廠模式使得不同廠商的短信服務(wù)可以通過統(tǒng)一的接口進(jìn)行調(diào)用,簡(jiǎn)化了代碼結(jié)構(gòu)。同時(shí),工廠模式還符合開閉原則,讓我們能夠在不修改已有代碼的前提下,輕松地接入新的廠商支持。這樣的設(shè)計(jì)不僅提高了代碼的靈活性和可讀性,也降低了系統(tǒng)的耦合度,使項(xiàng)目更易于維護(hù)和拓展。

工廠模式在實(shí)際開發(fā)中應(yīng)用廣泛,尤其適用于需要?jiǎng)討B(tài)生成對(duì)象且對(duì)象種類較多的場(chǎng)景。通過合理運(yùn)用工廠模式,我們可以更有效地應(yīng)對(duì)業(yè)務(wù)需求的變化,讓系統(tǒng)保持穩(wěn)定、可擴(kuò)展的同時(shí)具備更高的質(zhì)量。

http://aloenet.com.cn/news/28822.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)設(shè)計(jì)作業(yè)百度競(jìng)價(jià)排名推廣
  • 做網(wǎng)站gif代碼名優(yōu)網(wǎng)站關(guān)鍵詞優(yōu)化
  • wordpress 伊拉克防木馬seo排名優(yōu)化推廣報(bào)價(jià)
  • 公司網(wǎng)站維護(hù)都需要怎么做旅行網(wǎng)站排名前十名
  • 網(wǎng)站流量站怎么做品牌整合營銷
  • 網(wǎng)站開發(fā)主管待遇網(wǎng)絡(luò)營銷專業(yè)好就業(yè)嗎
  • 簡(jiǎn)潔大方網(wǎng)站建設(shè)昆山網(wǎng)站建設(shè)推廣
  • 設(shè)計(jì)公司網(wǎng)站案例廣東網(wǎng)站seo策劃
  • joomla 網(wǎng)站建設(shè)上海網(wǎng)絡(luò)推廣外包
  • 動(dòng)靜分離網(wǎng)站架構(gòu)sem競(jìng)價(jià)外包公司
  • 徐州哪家公司做網(wǎng)站水平好如何制作一個(gè)網(wǎng)頁頁面
  • 那個(gè)網(wǎng)站做搬家推廣比較好重慶森林講的什么內(nèi)容
  • 靠比較好的軟件下載網(wǎng)站社交媒體營銷三種方式
  • 用bootstrap做的手機(jī)推銷網(wǎng)站模板如何在百度上發(fā)表文章
  • 做淘客網(wǎng)站要備案網(wǎng)絡(luò)廣告人社區(qū)
  • 佛山專業(yè)的網(wǎng)站制作怎么做公司網(wǎng)站推廣
  • 腐女做喜歡的網(wǎng)站做銷售記住這十句口訣
  • 哪些網(wǎng)站可以做簽約設(shè)計(jì)師在線crm網(wǎng)站建站
  • wix建設(shè)網(wǎng)站鏈接交換平臺(tái)
  • 淘寶客做網(wǎng)站教程網(wǎng)站注冊(cè)信息查詢
  • 建設(shè)網(wǎng)站的方案抖音競(jìng)價(jià)推廣怎么做
  • 兼職做ps網(wǎng)站百度網(wǎng)盤搜索引擎網(wǎng)站
  • wordpress 所有鉤子商丘seo公司
  • 大型的網(wǎng)站開發(fā)crm系統(tǒng)網(wǎng)站
  • 免費(fèi)網(wǎng)站制作效果百度一下你就知道123
  • 邯鄲做移動(dòng)網(wǎng)站費(fèi)用seo專業(yè)論壇
  • 網(wǎng)站網(wǎng)速慢刷百度關(guān)鍵詞排名
  • 瑞安做網(wǎng)站建設(shè)湖南網(wǎng)站建設(shè)seo
  • 桐鄉(xiāng)做網(wǎng)站正規(guī)seo大概多少錢
  • 網(wǎng)站不兼容怎么辦鄭州seo博客