Java作业-控制台小商城(含源码)

JAVA简单控制台超市管理系统 这是一个JAVA代码,是MYSQL和控制台的超市管理系统,里面有采购,仓库管理,销售管理,权限管理,客服中心等功能! 立即下载
前言

堂弟的作业,不会做,请教我,时间很短,我就写了一个demo。 用于小白学习用吧,加深对Java的应用和理解。没基础的可以试着自己先写一写。

需求(作业题目)

共包含个模块:
登录(Login)、
用户(User)、
VIP用户(继承自User )、
普通用户(继承自User )、
管理员(继承自User )、
购物模块(Shop)

  • 登录模块:用于用户登录及权限选择(是VIP还是普通用户)
  • 用户模块:共有属性(均设置为私有变量)及共有方法
  • VIP用户:拥有购物、充值、注销账户、抽奖、修改密码等权限(其中部分方法为对父类方法的重写)
  • 普通用户:拥有购物、注销账户、修改密码等权限(其中部分方法为对父类方法的重写)
  • 管理员:拥有修改商品价格、增加商品、注销账户、修改密码等权限(其中部分方法为对父类方法的重写)
  • 购物模块:用于用户购物选择
效果图

在这里插入图片描述

在这里插入图片描述
因为没有连接数据库,所以不是持久化存储,程序关闭即数据丢失

程序写完没有详细测试,估计会有一些校验错误

项目环境

jdk1.7以上

开发工具(IDE)

idea/eclipse

项目结构

在这里插入图片描述

  • 用户
package cn.jason.login;
/**
 * 用户对象
 * Created by Administrator on 2019/3/30 0030.
 * 公共功能:
 *  1.登录
 *  2.注销
 *  3.修改密码
 *
 *
 * 约定:
 *  0 -- 普通用户
 *  1 -- vip 用户
 *  2 -- 管理员用户
 */
public class User {

    /**
     * 无参构造
     */
    public User() {
    }

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return
     */
    public boolean login(String username, String password) {
        // nothing to do !
        // 用作父类, 什么都不做
        return false;
    }


    /**
     * 注销
     * @param username 用户名
     * @param password 密码
     * @return
     */
    public boolean cancel(String username , String password) {
        // nothing to do !
        return false;
    }


    /**
     * 修改密码
     * @param username 用户名
     * @param password 密码
     * @return
     */
    public boolean update(String username , String password) {
        // nothing to do !
        return false;
    }

}

  • Vip用户
package cn.jason.login;


import cn.jason.util.FileReaderUtil;

/**
 * vip 用户
 * Created by Jason on 2019/3/30 0030.
 */
public class VipUser extends User{

    // 幸运数字 1~6
    private static final Integer LUCK_NUMBER_ONE = 1;

    private static final Integer LUCK_NUMBER_TWO = 2;

    private static final Integer LUCK_NUMBER_THREE = 3;

    private static final Integer LUCK_NUMBER_FOUR = 4;

    private static final Integer LUCK_NUMBER_FVIE = 5;

    private static final Integer LUCK_NUMBER_SIX = 6;

    // 状态可用
    private static final String STATUS_ABLE = "able";
    // 状态不可用
    private static final String STATUS_DISABLE = "disable";

    /**
     * 购买商品操作
     * @param gname 商品名称
     * @return
     */
    public boolean buy(String gname,Integer num) {

        String name = FileReaderUtil.getContent("goods.name"); // 商品名称
        String priceStr = FileReaderUtil.getContent("goods.price"); // 商品单价
        // 转型
        // 单价
        int price = Integer.valueOf(priceStr);
        // 账户余额
        int money = Integer.valueOf(FileReaderUtil.getContent("vip.account.money"));
        if (gname.equals(name)) {
            if (money<(price*num)) {
                System.out.println("余额不足, 请充值!");
            }else {
                System.out.println("恭喜您,购买成功!");
               int coins = money-(price*num);
                Integer gnum = Integer.valueOf(FileReaderUtil.getContent("goods.num")); // 商品名称
                gnum = gnum - num;
                // 减少商品数量
                FileReaderUtil.updateContent("goods.num",gnum+"");
                // 更新余额
               return FileReaderUtil.updateContent("vip.account.money",coins+"");
            }
        }else
            System.out.println("对不起,没有该商品!");
        return false;
    }

    /**
     * 充值
     * @param password 密码
     * @param count 充值多少?
     * @return
     */
    public boolean recharge(String password , Integer count) {
        String pass = FileReaderUtil.getContent("vip.account.pass");
        if (pass.equals(password)) {
            // 获取余额
            String money = FileReaderUtil.getContent("vip.account.money");
            System.out.println("您原来的余额为:"+money);
            // 充值
            count = Integer.valueOf(money)+count;
            System.out.println("您现在的余额为:"+count);
            return FileReaderUtil.updateContent("vip.account.money",count+"");
        }else
            System.out.println("密码不正确, 无法充值!");
        return false;
    }


    /**
     * 抽奖
     * @param num 输入的幸运数字
     * @return
     */
    public void lotteryDraw(Integer num) {
        if (num == LUCK_NUMBER_ONE)
            System.out.println("很遗憾,您没有中奖-。-!");
        else if (num == LUCK_NUMBER_TWO)
            System.out.println("谢谢惠顾");
        else if(num == LUCK_NUMBER_THREE)
            System.out.println("谢谢惠顾");
        else if (num == LUCK_NUMBER_FOUR)
            System.out.println("谢谢惠顾");
        else if(num == LUCK_NUMBER_FVIE)
            System.out.println("谢谢惠顾");
        else if (num == LUCK_NUMBER_SIX)
            System.out.println("恭喜您获得一等奖:iPhone xs max 一台");
        else
            System.out.println("");
    }

    // 重写父类方法 - 登录
    @Override
    public boolean login(String username, String password) {
        if (username!=null&&password!=null) {
            String name = FileReaderUtil.getContent("vip.account");
            String pass = FileReaderUtil.getContent("vip.account.pass");
            // 校验账号是否被注销
            String status = FileReaderUtil.getContent("vip.account.status");
            if (!status.equals(STATUS_ABLE)) {
                System.out.println("很抱歉,您的账号已被注销,无法进行登陆!");
                return false;
            }
            // 验证登陆
            if (username.equals(name)&&password.equals(pass)) {
                return true;
            }else
                System.out.println("用户名或者密码不正确");
        }else
            System.out.println("用户名,密码不能为空!");
        return false;
    }

    // 重写父类方法 - 注销
    @Override
    public boolean cancel(String username, String password) {
        System.out.println("尊敬的VIP用户,正在为您注销账户!");
        // 校验账号是否被注销
        String status = FileReaderUtil.getContent("vip.account.status");
        if (!status.equals(STATUS_ABLE)) {
            System.out.println("您的账号已被注销,请勿重复操作!");
            return false;
        }
        // 注销
        String name = FileReaderUtil.getContent("vip.account");
        String pass = FileReaderUtil.getContent("vip.account.pass");
        if (username.equals(name)&&password.equals(pass)) {
            String statusKey = "vip.account.status";
            return FileReaderUtil.updateContent(statusKey,STATUS_DISABLE);
        }else
            System.out.println("账户密码不对,不能修改!");
        return false;
    }


    // 重写父类方法 - 修改密码
    @Override
    public boolean update(String username, String password) {
        System.out.println("【尊敬的vip, 正在为您修改密码!】");
        // 校验
        if (username == null||password == null) {
            System.out.println("用户名或者密码不能为空!");
            return false;
        }

        // 校验账号是否被注销
        String status = FileReaderUtil.getContent("vip.account.status");
        if (!status.equals(STATUS_ABLE)) {
            System.out.println("很抱歉,您的账号已被注销,无法进行修改!");
            return false;
        }

        // 读取账号
        String name = FileReaderUtil.getContent("vip.account");
        // 匹配账号
        if (username.equals(name)) {
            // 获取 vip密码对应的键
            String passKey = "vip.account.pass";
            // 开始修改密码 成功返回true
            return FileReaderUtil.updateContent(passKey,password);
        }else{
            // 匹配账号失败
            System.out.println("您输入的账户名称错误, 修改密码失败!");
            return false;
        }

    }
}

  • 管理员
package cn.jason.login;


import cn.jason.util.FileReaderUtil;

/**
 * 管理员用户
 * Created by Jason on 2019/3/31 0031.
 */
public class AdminUser extends User{

    // 状态可用
    private static final String STATUS_ABLE = "able";
    // 状态不可用
    private static final String STATUS_DISABLE = "disable";

    /**
     * 增加商品
     * @param gname  商品名称
     * @param number 商品数量
     * @return
     */
    public boolean addGoods(String gname,Integer number) {
        String goodsName = FileReaderUtil.getContent("goods.name");
        if (gname.equals(goodsName)) {
            Integer goodsNum = Integer.valueOf(FileReaderUtil.getContent("goods.num"));
            number = goodsNum+number;
            FileReaderUtil.updateContent("goods.num",number+"");
            System.out.println("剩余商品数量为:"+number);
            return true;
        }else
            System.out.println("没有该类商品,请选择正确的商品名称!");
        return false;
    }

    /**
     * 修改商品名称
     * @param gname 商品名称
     * @param money 商品单价
     * @return
     */
    public boolean updateGoodsPrice(String gname, Integer money) {
        String goodsName = FileReaderUtil.getContent("goods.name");
        if (gname.equals(goodsName)) {
            Integer goodsPrice = Integer.valueOf(FileReaderUtil.getContent("goods.price"));
            money = goodsPrice+money;
            FileReaderUtil.updateContent("goods.price",money+"");
            System.out.println("商品单价为:"+money);
            return true;
        }else
            System.out.println("没有该类商品,请选择正确的商品名称!");
        return false;
    }
    // 修改商品

    // 重写父类方法 - 登录
    @Override
    public boolean login(String username, String password) {
        if (username!=null&&password!=null) {
            String name = FileReaderUtil.getContent("admin.account");
            String pass = FileReaderUtil.getContent("admin.account.pass");
            // 校验账号是否被注销
            String status = FileReaderUtil.getContent("admin.account.status");
            if (!status.equals(STATUS_ABLE)) {
                System.out.println("很抱歉,您的账号已被注销,无法进行登陆!");
                return false;
            }
            // 验证登陆
            if (username.equals(name)&&password.equals(pass)) {
                return true;
            }else
                System.out.println("用户名或者密码不正确");
        }else
            System.out.println("用户名,密码不能为空!");
        return false;
    }

    // 重写父类方法 - 注销
    @Override
    public boolean cancel(String username, String password) {
        System.out.println("尊敬的管理员用户,正在为您注销账户!");
        // 校验账号是否被注销
        String status = FileReaderUtil.getContent("admin.account.status");
        if (!status.equals(STATUS_ABLE)) {
            System.out.println("您的账号已被注销,请勿重复操作!");
            return false;
        }
        // 注销
        String name = FileReaderUtil.getContent("admin.account");
        String pass = FileReaderUtil.getContent("admin.account.pass");
        if (username.equals(name)&&password.equals(pass)) {
            String statusKey = "admin.account.status";
            return FileReaderUtil.updateContent(statusKey,STATUS_DISABLE);
        }else
            System.out.println("账户密码不对,不能修改!");
        return false;
    }


    // 重写父类方法 - 修改密码
    @Override
    public boolean update(String username, String password) {
        System.out.println("【尊敬的管理员用户, 正在为您修改密码!】");
        // 校验
        if (username == null||password == null) {
            System.out.println("用户名或者密码不能为空!");
            return false;
        }

        // 校验账号是否被注销
        String status = FileReaderUtil.getContent("admin.account.status");
        if (!status.equals(STATUS_ABLE)) {
            System.out.println("很抱歉,您的账号已被注销,无法进行修改!");
            return false;
        }

        // 读取账号
        String name = FileReaderUtil.getContent("admin.account");
        // 匹配账号
        if (username.equals(name)) {
            // 获取 vip密码对应的键
            String passKey = "admin.account.pass";
            // 开始修改密码 成功返回true
            return FileReaderUtil.updateContent(passKey,password);
        }else{
            // 匹配账号失败
            System.out.println("您输入的账户名称错误, 修改密码失败!");
            return false;
        }

    }
}

代码下载:
百度云下载点这里
提取码:7s2y

java版商城源码下载-littlemall:小商城 java版商城源码下载 litemall 又一个小商场系统。 litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端 项目实例 小商场实例 renard-wx模块实例 注意:此实例是真实小商场,开发者可以购买商品和付款,但请不要尝试退款操作。 litemall-wx模块实例 注意:此实例是测试小商场,开发者请不要尝试购买商品、付款、退款操作。 轻商场实例 请手机扫描以下二维码访问: 或者浏览器采用手机模式访问以下网址: 注意: 由于第一次加载数据量较大,建议wifi网络访问,且耐心等待数秒。 此实例是测试轻商场,不支持支付,而且处于开发中还不完善。 管理后台实例 浏览器打开,输入以下网址: 管理员用户名admin123,管理员密码admin123 注意:此实例只是测试管理后台,不是前两个小商城的管理后台。 项目代码 项目架构 技术栈 Spring Boot Vue 微信小程序 功能 小商城功能 首页 专题列表、专题详情 分类列表、分类详情 品牌列表、品牌详情 新品首发、人气推荐 优惠券列表、优惠券选择 团购 搜索 商品详情、 立即下载

相关推荐

通用商城后台管理系统模板源码

蓝色通用商城响应式后台管理模板基于Bootstrap3.0.0制作,自适应分辨率,兼容PC端和移动端,全套模板,包括登录、系统首页、产品管理、图片管理、交易管理、支付管理、支付管理、会员管理、店铺管理、消息管理、文章管理、系统管理、管理员管理、网站设置等HTML后台模板页面。

java控制台订单系统

java控制台订单系统

weixin_51720569的博客 1643

购物商城练习项目

购物商城练习项目

java超市管理系统_一个简单的基于控制台的超市管理系统(java)

一个小菜鸟的成长之路:废话不多说,直接上干货首先是java环境:jdk1.10 jdbc驱动:mysql-connector-java-5.1.46.jar其次是开发软件IntelliJ IDEA2018三个数据表:admin:CREATE TABLE `admin` (`id` int(11) NOT NULL,`name` varchar(30) NOT NULL,`password` va...

weixin_42509569的博客 1245

java控制台购物系统

该资源是一个javase的购物小程序,主要是一个购物程序的思路。 现有资源是程序的源码

java版商城源码下载-littlemall11:小商城11

java版商城源码下载 litemall 又一个小商场系统。 litemall = Spring Boot后端 + Vue管理员前端 + 微信小程序用户前端 + Vue用户移动端 项目实例 小商场实例 renard-wx模块实例 注意:此实例是真实小商场,开发者可以购买商品和付款,但请不要尝试退款操作。 litemall-wx模块实例 注意:此实例是测试小商场,开发者请不要尝试购买商品、付款、退款操作。 轻商场实例 请手机扫描以下二维码访问: 或者浏览器采用手机模式访问以下网址: 注意: 由于第一次加载数据量较大,建议wifi网络访问,且耐心等待数秒。 此实例是测试轻商场,不支持支付,而且处于开发中还不完善。 管理后台实例 浏览器打开,输入以下网址: 管理员用户名admin123,管理员密码admin123 注意:此实例只是测试管理后台,不是前两个小商城的管理后台。 项目代码 项目架构 技术栈 Spring Boot Vue 微信小程序 功能 小商城功能 首页 专题列表、专题详情 分类列表、分类详情 品牌列表、品牌详情 新品首发、人气推荐 优惠券列表、优惠券选择 团购(团购业务有待完善

java超市管理系统

说明:此篇知识面向对象思想的demo,并不涉及到数据库操作,如需数据库操作前往博客 https://blog.youkuaiyun.com/qq_34491508/article/details/103453940 一:开发目标 通过简单的控制台版本的超市管理系统对javase基础知识回顾,熟悉面向对象(java)的开发思想 二:开发代码 商品信息类 /* * 商品信息类 */ p...

程序员一博 2万+

GEO芯片数据下载和探针ID转换(保姆级教程)

R语言安装、GEO芯片数据下载、探针ID转换

qq_43138237的博客 3万+

超市购物程序设计(java)

编写一个超市购物程序,在一家超市有牙刷、毛巾、水杯、苹果和香蕉五种商品,用户输入商品序列号进行商品购买,用户输入购买数量后计算出所需要花费的钱,一次购买结束后,需要用户输入“Y”或“N”,“Y”代表继续购买,“N”代表购物结束。

qq_53581464的博客 5452

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库)

sysrepo 开发者指南(一个基于libyang与支持rpc的数据库) 日志记录 默认情况下,所有 Sysrepo 日志记录都处于关闭状态。如果启用,日志消息有 3 种输出。它们可以写入stderr、由 处理syslog或简单地传递给回调。 请务必注意,启用 Sysrepo 日志记录也会修改libyang日志记录设置。错误消息被视为标准 Sysrepo 错误,其他严重性较低的消息完全隐藏。要更改此行为,只需在启用 Sysrepo 日志记录后调整libyang日志记录设置。 此外,几乎每个 Sysrepo

weixin_43489394的博客 9229

SimpleITK图像基础(一)——3D Resampling

文章目录前言基于SimpleITK进行实现 前言 进入深度学习网络之前需要进行统一数据集,这个时候需要对这些数据集进行重新采样,即假设各向同性体素并重新定向它们,以便可以读取所有图像的像素矩阵。 在将方位变换成一致时,可以用DICOMOrientImageFilter过滤器,可以将 DesiredCoordinateOrientation设置为你想要变换的方位,它将计算出所需的置换顺序并根据需要执行翻转以接近所需方向。 基于SimpleITK进行实现 workflow如下: step 1:首先运行DICOM

YYY_77的博客 2019

Java+控制台 商城销售系统

实现一个xx商城销售系统的登录功能:1))打开系统,给出欢迎信息。2)将用户名和密码定义在程序中。3)用户登录时提示输入用户名和密码,当用户输入错误时给出提示信息。4)能够循环登录。5)三次密码输错,程序退出。实现商品销售功能,具体要求如下:1)程序添加一个5个元素的二维列表,列表中每个元素对应一种商品,分别有商品编号、商品名称、商品数量、商品价格和商品类别。另一个二维列表表示购物车,结构类似。2)用户账号现在也是二维列表,每个元素对应一个账号,包含用户账户、用户密码和。

pangjiaqian的博客 1267

不用标注数据!用SAM 3零成本搞定遥感图像分割:SegEarth-OV3保姆级上手教程

本文介绍了如何利用SAM 3和SegEarth-OV3实现零标注遥感图像分割,提供从环境配置到结果优化的完整教程。通过开放词汇语义分割技术,用户无需标注数据即可快速获得专业级分割结果,适用于光伏板统计、灾害评估等场景。

weixin_30415113的博客 586

基于JAVA在线购书商城系统计算机毕业设计源码+系统+数据库+lw文档+部署

基于JAVA在线购书商城系统计算机毕业设计源码+系统+数据库+lw文档+部署。ssm+sqlserver高校教师教学业绩考核系统。springboot基于web的学校工资管理系统。springboot石家庄学院学生实习管理系统。springboot高校实验室仪器设备管理系统。springboot个性化产品服务管理系统。springboot企业客户管理系统。springboot在线毕设选题系统。

bishe205的博客 408

yolo 图像检测、关键点检测单摄像头测量物体尺寸长度大小

new_distance/real_size (待求物体像素距离与实际距离比值)= distance / metric_length (参照物像素距离与实际距离比值)然后运行size_demo进行要测量的物体进行关节点检测距离;metric_length是上面耳机选取的两个点的实际物理距离,大概6cm;这里用的windows。通过关键点检测识别物体关键点的像素距离,然后参考比例尺计算实际距离。2)关键点算法这里用的现有的进行测试,实际场景需要自己训练。这里拿这模型推理出的关键点坐标进行后续长度计算。

weixin_42357472的博客 2525

OpenFeign整合Sentinel实现熔断降级

常用于实现熔断降级的框架有Hystrix、Sentinel,我们常说的Spring Cloud项目说的其实是Spring Cloud Netflix,Hystrix以及前面学习过的Ribbon都是Netflix系的家族成员,所以使用Hystrix可以非常简单的与当前项目中使用到的OpenFeign、Ribbon整合,但笔者并没有选择Hystrix,而是选择阿里系的Sentinel。 为什么选择Sentinel而不是Hystrix?从接入简单考虑可能选择Hystrix是不错的选择,但笔者对Hyst...

吴就业 6718

计算机毕业设计Java作业管理系统(源码+系统+mysql数据库+Lw文档)

计算机毕业设计Java作业管理系统(源码+系统+mysql数据库+Lw文档)JSP鸡厂养殖管理系统的设计与实现sqlserver。springboot物流车辆规费管理系统的设计与实现。ssm基于Vue的潍坊学院宿舍管理系统的设计与实现。jsp会议管理系统的设计与实现sqlserver。ssm基于ssm+vue的高校个性化选课推荐。ssm基于Web的精品课程网站的设计与实现。

m0_73303042的博客 442

ArtMate —— 美术公开课智能体开发全记录

本文档详细描述了一款专为中小学美术公开课设计的智能教学助手的开发过程。该智能体融合了多模态感知、自然语言交互、风格迁移与智能评价等技术,旨在辅助教师开展生动、高效的美术鉴赏与创作课程。全文包含需求分析、系统架构设计、核心模块代码实现、交互界面搭建及完整运行示例,并配有详尽的行内注释和设计思想阐述,为教育技术开发者提供一份可落地、可扩展的参考方案。

huanghm88的专栏 153

springboot宠物购物商城管理系统的设计与实现

[含文档+PPT+源码等]精品基于springboot宠物购物商城管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑与微信售后交流群、送查重系统不限次数免费查重等福利!本系统功能完整,适合作为毕业设计、课程设计、数据库大作业 参考 以及学习商用皆可。前端使用技术:HTML5,CSS3、JavaScript、VUE等。后端使用技术:Spring boot(SSM)等。数据库:Mysql数据库。

qq_51780320的博客 132

华为OD机试双机位C卷:补种未成活胡杨 (C/C++/Py/Java/Js/Go)

华为OD机试双机位C卷 补种未成活胡杨,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 补种未成活胡杨。

qq_45776114的博客 4002

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

基于微信小程序的网上商城+ssm论文源码调试讲解

逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生小程序体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的小程序。

鑫鑫源码工作室的博客 1395

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

weixin基于微信小程序的网上商城+ssm

整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生小程序体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的小程序。

平安喜乐 758

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

基于微信小程序的童装商城的设计与实现+ssm论文源码调试讲解

逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生小程序体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的小程序。

鑫鑫源码工作室的博客 1227
上一篇: 5分钟Git从入门到使用(git笔记)
下一篇: web服务器常见配置搭建详解(超详细)
JavaBuilt
博客等级 码龄10年 1106粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值