app banner设计
来源:互联网 发布:sqlserver 进阶 编辑:程序博客网 时间:2024/06/08 08:06
转载请注明来自:http://blog.csdn.net/huntersjm/article/details/41013981
本文为某拍卖系统app的banner设计
1:由于保持运维修改的便利性,banner设计为数据库存储,具体表结构如下:
设计解释:a.设计中valid为该banner是否为有效,便于随时调整banner的有效性
b.设计中的starttime和endtime为开始时间,和结束时间,比如某活动在11.11凌晨开始有效,肯定不会在11.11凌晨去点击valid使得有效,所以采用
<优化:其实可以设置为自定义的时间格式内容,比如每周周末之类的等的方式,来保证更大的广度和可选性>
c.设计中user,为记录创建人和修改人,便于权限的控制和记录
d.设计中的控制基本为固定的省市区域性别,因为控制的方案是很固定的。<如果有其他需要,可以放置到control里面,来控制进行,与b一样可扩展性就很强了>
e.image为时间显示的图片,因为banner肯定是表观的显示为图片<可扩展,可以根据定义的action来控制扩展,比如不同情况来>
f.action为控制,控制点击banner的跳转,比如img$url...为跳转到图片 prd$productid为跳转到产品页面 url$url...为跳转到浏览器usr$userid 为跳转到用户页面等,控 制自定义化,模板化(采用$控制为减少浏览器编码冲突)
2:建议移动端设计模式,将传入的action解析,获取传入的图片地址,来获取图片(如果action为特殊,比如product可以通过product来获取)
设计标准: 通过设计对应每个类型的处理,通过统一接口来定义方法,通过java反射机制来获取对应的处理类,大大地提高了可扩展性和维护性,代码可读性等
简单的代码示例:<移动端根据此思想进行改动>
package com.test.deal;public interface BaseDeal {public String getPhoto();public void action();}
package com.test.deal;public class DealImg implements BaseDeal{@Overridepublic String getPhoto() {System.out.println("get img url!");return "Img url";}@Overridepublic void action() {System.out.println("forward img!");}}
package com.test.deal;public class DealProduct implements BaseDeal{@Overridepublic String getPhoto() {System.out.println("get product url!");return "Product url";}@Overridepublic void action() {System.out.println("forward product!");}}
package com.test.deal;public class DealUrl implements BaseDeal{@Overridepublic String getPhoto() {System.out.println("get browser url!");return "Browser url";}@Overridepublic void action() {System.out.println("forward browser!");}}
package com.test.deal;public class Operation {public void banner(String banner){String []banners = banner.split("$");if(banners.length!=2){System.err.println("error input!");return;}BaseDeal baseDeal = null;try {baseDeal = (BaseDeal) Class.forName("com.test.deal.Deal"+banners[0]).newInstance();} catch (InstantiationException e) {System.err.println("This class can't be instantiated!");e.printStackTrace();} catch (IllegalAccessException e) {System.err.println("This class can't be access!");e.printStackTrace();} catch (ClassNotFoundException e) {System.err.println("This class not exists!");e.printStackTrace();}if(baseDeal!=null){String bannerUrl = baseDeal.getPhoto();//download bannerUrl operation to displaybaseDeal.action();}else{System.err.println("class cast error!");}}}
3:总结:该方法的可扩展性,维护性,代码可读性大大增加,便于后期代码的继续开发。
- app banner设计
- 设计解析-封面/banner
- banner设计技巧分享
- 项目banner设计网站
- 使用 smart app banner 推广APP应用
- 关于Banner设计的文章
- 设计公司BANNER修改教程
- banner设计中的文字标题设计
- Banner
- banner
- Banner
- Banner
- Banner
- banner
- banner
- banner
- banner
- banner
- android jni代码编写规则--整理总结
- redis集群
- for loop initial declaration used outside C99 mode
- 二路归并排序
- android 多线程断点续传下载 一
- app banner设计
- HDU 2833 WuKong 最短路径+DP
- CentOS 64位 安装32位运行库
- hdoj 2544 最短路 【最短路径模板题】
- Fireshell的使用说明
- android 多线程断点续传下载 二
- 如何修改[!--show.listpage--]在列表页中的展示?
- Codeforces Round #277 (Div. 2)
- Longest Consecutive Sequence(leetcode)