鏈動2+1模式開發(現成案例)

姚先生專業開發發表於2023-05-05

網上商城系統是什麼呢?網上商城系統又叫做網上購物平臺,主要是在網際網路上提供商品銷售和提供平臺服務的電子商務系統。常見的網上商城系統有b2c商城系統、b2b2c商城系統、微信商城系統、小程式商城系統等,至於選擇何種商城系統,則需要根據企業的實際需求來選擇,如功能、開發語言...等。

  鏈動2+1模式的規則很簡單,其中設立兩種等級身份制度:老闆以及代理。

  當使用者想要從推廣當中獲得收益的時候,就需要購買平臺制定的代理大禮包成為代理;

  而當代理想要獲得更多獎勵機制的話,2+1鏈動模式系統vvx(May21Hot),則需要推薦兩位代理成為老闆,成為老闆即可獲得三種獎勵制度。

  架構設計

  在完成需求分析之後,需要進行架構設計。根據商城型購物網站的特點,我們可以採用以下的架構設計:

  商城型購物網站架構設計

  前端架構

  前端架構採用MVC架構,即Model-View-Controller,其中Model層負責資料的獲取和處理,View層負責頁面的展示,Controller層負責業務邏輯的處理。在前端架構中,我們採用React框架來實現元件化開發,並且採用Webpack打包工具來對程式碼進行打包和壓縮。

  後端架構

  後端架構採用分散式架構,即將系統拆分為多個服務,並且採用微服務架構來進行管理。在後端架構中,我們採用Spring Cloud框架來實現微服務架構,並且採用MySql資料庫來儲存資料。

  中介軟體架構

  中介軟體架構採用快取、訊息佇列、搜尋引擎等中介軟體來提高系統的效能和可靠性。其中,我們選擇Redis作為快取中介軟體,選擇Kafka作為訊息佇列中介軟體,選擇ElasticSearch作為搜尋引擎中介軟體。

  其實,開發應用商城,不外乎這麼幾點:

  1:非同步載入app資訊列表,主要是app的icon載入:

  為了app列表滾動重新整理流暢,引入了執行緒池的思想,網路端載入資訊的動作都線上程池中進行

  外碼片段如下:

  public class AsyncImageLoader3{

  //為了加快速度,在記憶體中開啟快取(主要應用於重複圖片較多時,或者同一個圖片要多次被訪問,比如在ListView時來回滾動)

  public Map>imageCache=new HashMap>();

  private ExecutorService executorService=Executors.newFixedThreadPool(8);//固定五個執行緒來執行任務

  private final Handler handler=new Handler();

  /**

  *

  * param imageUrl影像url地址

  * param callback回撥介面

  * return返回記憶體中快取的影像,第一次載入返回null

  */

  public Drawable loadDrawable(final String imageUrl,final ImageCallback callback){

  //如果快取過就從快取中取出資料

  if(imageCache.containsKey(imageUrl)){

  SoftReference softReference=imageCache.get(imageUrl);

  if(softReference.get()!=null){

  return softReference.get();

  }

  }

  //快取中沒有影像,則從網路上取出資料,並將取出的資料快取到記憶體中

  executorService.submit(new Runnable(){

  public void run(){

  try{

  final Drawable drawable=Drawable.createFromStream(new URL(imageUrl).openStream(),"image.png");

  imageCache.put(imageUrl,new SoftReference(drawable));

  handler.post(new Runnable(){

  public void run(){

  callback.imageLoaded(drawable);

  }

  });

  }catch(Exception e){

  throw new RuntimeException(e);

  }

  }

  });

  return null;

  }

  //從網路上取資料方法

  protected Drawable loadImageFromUrl(String imageUrl){

  try{

  return Drawable.createFromStream(new URL(imageUrl).openStream(),"image.png");

  }catch(Exception e){

  throw new RuntimeException(e);

  }

  }

  //對外界開放的回撥介面

  public interface ImageCallback{

  //注意此方法是用來設定目標物件的影像資源

  public void imageLoaded(Drawable imageDrawable);

  }

  }



作者:vvx_May21Hot

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70029042/viewspace-2950049/,如需轉載,請註明出處,否則將追究法律責任。

相關文章