我的开源框架之设计规范

需求设计


(1)所有组件只实现简单易用(即不需要编写大量javascript代码)功能,复杂功能如数据表格的行编辑等可以通过弹出其他页面实现的功能不做。

(2)所有组件只实现常用需求,尽量简化组件的复杂度。

代码设计规范

(1)组件代码框架符合jquery开发规范

(2)代码块清晰,可以区分构造器、私有函数、公共函数

(3)函数名需要注释使用方式与用途、函数的参数有详细注释

以下为代码框架规范:


 1 /**************************************************************
2 *作者:hjwen
3 *电邮:[email protected]
4 *版本:1.0
5 *版权许可:中国通用开源许可协议V1.0
6 *说明:myui组件javascript架构说明,所有组件均遵循该规范
7 ***************************************************************/
8 (function ($) {
9 /******
10 *渲染目标:renderHtml为构建html结构的函数,init初始化会调用
11 *******/
12 function renderHtml(target) {
13 ///构建html结构
14 };
15
16 /**********私有方法开始********************
17
18 -------- private function ---------
19 --------此处为控件内部的私有方法块---------
20 -------- private function ---------
21
22 /**********私有方法结束*******************/
23
24 /*****************************************************************************
25 *对外的函数统一封装到methods中
26 *调用方式:$.pluginInstance.pluginName("methodName",params)
27 *对外函数仅支持以上方式调用,不支持$.pluginInstance.methodName(params)方式
28 *上述调用方式来源于“约定胜于配置”原则,该种调用方式简化组件的编码,方便维护
29 ******************************************************************************/
30 var methods = {
31 init: function (options) {
32 return this.each(function () {
33 var $this = $(this);
34 var settings = $this.data(‘settings‘);
35 if (typeof (settings) == ‘undefined‘) {
36 settings = $.extend({}, $.fn.button.defaults, options);
37 $this.data(‘settings‘, settings);
38 } else {
39 settings = $.extend({}, settings, options);
40 }
41 //创建ui布局
42 renderHtml($this);
43 if ($.myui.isDebug) {
44 $.myui.log("jQuery.button init finish......");
45 }
46 });
47 },
48 destroy: function (options) {
49 return $(this).each(function () {
50 var $this = $(this);
51 $this.removeData(‘settings‘);
52 });
53 }
54 /****************************************
55 ----------public method--------------
56 ---------此处为对外函数块------------
57 ----------public method--------------
58 ****************************************/
59 };
60 /********************
61 *组件的构造函数
62 *********************/
63 $.fn.button = function () {
64 var method = arguments[0];
65 if (methods[method]) {
66 method = methods[method];
67 arguments = Array.prototype.slice.call(arguments, 1);
68 } else if (typeof (method) == ‘object‘ || !method) {
69 if ($.myui.isDebug) {
70 $.myui.log("jQuery.button init.....");
71 }
72 method = methods.init;
73 } else {
74 $.error(‘Method ‘ + method + ‘ does not exist on jQuery.button‘);
75 return this;
76 }
77 return method.apply(this, arguments);
78 };
79 /********************
80 *组件的默认配置值
81 *********************/
82 $.fn.button.defaults = {
83 text: ‘按钮‘,
84 iconCls: ‘‘,//按钮图标
85 handler: function () { }//处理事件
86 };
87 })(jQuery);

我的开源框架之设计规范,布布扣,bubuko.com

时间: 2024-12-23 19:24:55

我的开源框架之设计规范的相关文章

Android开源框架ImageLoader:加载图片的三级缓存机制

前言:可从  https://github.com/nostra13/Android-Universal-Image-Loader 下载三级缓存机制的开源框架.下文简单介绍该框架中主要的常用方法,掌握这些方法,基本就可应对多数图片下载的需求. 注意:以下代码为示意代码片断,仔细读一下应能知道怎么用.蓝色表示为开源框架中的类. 1.初始化ImageLoader类对象: ImageLoader imageLoader = ImageLoader.getInstance(); imageLoader.

Android开源框架 Android-Universal-Image-Loader

Android开源框架Universal-Image-Loader就像图片加载守护者,为我们提供了丰富的功能特性: (1)多线程加载图像(异步或同步): (2)高度可定制化imageloader配置(线程池.图片下载器.解码器.内存和磁盘缓存.显示图像选项等): (3)每一个显示图像有许多自定义选项(存根图片,缓存开关,解码选项,位图处理和显示等): (4)支持内存和磁盘上的图像缓存(设备的文件系统和SD卡): (5)监听加载过程(包括下载进度): 下来我们详解如何配置使用Universal-I

android-async-http开源框架的详细解释

Android网络请求库:android-async-http开源框架 之前有一篇描述了客户端请求服务器端的方式-Post的请求方式.今天介绍一个请求服务器的一个开源库-android-async-http库. 1. 概念: 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通过回调方法(匿名内部类)处理请求结果. 2. 特征: (1).处理异步Http请求,并通过匿名内部类处理回调结果 **(2).**Http异步请

《开源框架那点事儿25》:对框架模板引擎实现方式的改造实录

点滴悟透设计思想,Tiny模板引擎优化实录! 增加框架设计兴趣小组:http://bbs.tinygroup.org/group-113-1.html Tiny模板引擎的实现方式原来是採用的编译方式,近期发生了一些问题.因此我认为有必要把编译方式调整为解释方式,为此就開始了此次实现活动. 编译方式存在的问题 当时採用编译方式.主要是考虑到编译方式在执行时不必再去遍历语法树.因此就採用了编译方式. 可是在实际应用其中,出现了例如以下问题: 文件路径冲突的问题 因为採用的是编译方式,这个时候就存在在

六款值得推荐的android(安卓)开源框架简介

1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求 (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2.android-async-http 项目地址:https://github.com/loopj/android-async-http

Android酷炫实用的开源框架(UI框架)

前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮助,此博文介绍的都是UI上面的框架,接下来会有其他的开源框架(如:HTTP框架.DB框架). 1.Side-Menu.Android分类侧滑菜单,Yalantis 出品.项目地址:https://github.com/Yalantis/Side-Menu.Android2.Context-Menu.Android可以方便快速集成漂亮带有动画效果

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

【光速使用开源框架系列】数据库框架OrmLite

[关于本系列] 最近看了不少开源框架,网上的资料也非常多,但是我认为了解一个框架最好的方法就是实际使用.本系列博文就是带领大家快速的上手一些常用的开源框架,体会到其作用. 由于作者水平有限,本系列只会描述如何快速的使用框架的基本功能,更多的详细设置大家可以在这些项目的页面上找到. [介绍]: ORMLite是一款辅助开发数据库的框架,可以通过给实体配置标注来快速建立数据表,也可以通过其提供的DAO类中的方法来快速对数据库进行操作,如增删改查等. [项目页面]: http://ormlite.co

《开源框架那些事儿21》:巧借力与借巧力

同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事. 故事1:巧借力,乌鸦也可以吃核桃 有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃. 核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,乌鸦就得到了那美味的核桃仁. 可是,让核桃从高空坠落,核桃壳破裂的概率很低,很多时候,乌鸦都是望而兴叹.然