首页 > 应用开发 > IT综合 > 链动2+1模式开发(现成案例)
网上商城系统是什么呢?网上商城系统又叫做网上购物平台,主要是在互联网上提供商品销售和提供平台服务的电子商务系统。常见的网上商城系统有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);
}
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70029042/viewspace-2950049/ ,如需转载,请注明出处,否则将追究法律责任。