导语:MVP开发模式可以帮助项目结构解耦,但其庞大的方法数增加,较为笨重设计对于手Q项目并不很适合。
参考之前Web开发经验,提出以页面结构化的解耦方式组织代码。
下面讲讲Lego在Android上一次小小尝试MVC太过常见这里不啰嗦。
实际应用MVC当中,Activity占据打部分的工作,View和Controller的身份分不清。
而MVP则是一种设计模式专门优化Activity/Fragment。
先来看看MVP模式的核心思想:View不直接与Model交互MVP把Activity中的UI逻辑抽象成View接口,把业务逻辑抽象成Presenter接口,Model类还是原来的Model在MVP设计模
2024/9/25 18:21:55 386KB 页面结构化在Android上的尝试
1
阿里云linux一键安装web环境。
全攻略http://source.docs.cloudcare.cn/support/tool/web/web_1/?spm=5176.730006-53366009-56014009-cmgj000262/A.content.8.py3ERY常见问题http://ops.jiagouyun.com/forum/view/81433/?spm=5176.730006-53366009-56014009-cmgj000262/A.content.9.py3ERY
2024/9/13 17:34:51 91KB 阿里云
1
FT_View_SE_5[1].0用户手册.pdf
2024/9/13 11:13:16 11.2MB 说明书
1
java项目packageproject.action.dialogAction;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JOptionPane;importproject.dao.common.DbException;importproject.dao.dataDao.LoginInfoDao;importproject.dao.dataDaoImpl.LoginInfoDaoImpl;importproject.view.dialog.AddLoginInfoDialog;importproject.vo.LoginInfoVo;/***添加登录账号action**@authorAdministrator**/publicclassAddLoginInfoActionimplementsActionListener{privateAddLoginInfoDialogdialog;publicAddLoginInfoAction(AddLoginInfoDialogdialog){this.dialog=dialog;}publicvoidactionPerformed(ActionEvente){Stringname=e.getActionCommand();if(name.equals("确定")){//检验输入是否正确if(dialog.checkInputValue()){LoginInfoDaodao=null;LoginInfoVovo=null;try{//获得界面输入信息vo=dialog.getInputInfo();Stringconfirm=dialog.getConfirm();if(vo.getLog_pwd().equals(confirm)){dao=newLoginInfoDaoImpl();if(dao.insertLoginInfo(vo)){//打印提示信息JOptionPane.showMessageDialog(null,"添加登录人员成功","提示信息",JOptionPane.YES_OPTION);dialog.dispose();}else{//打印提示信息JOptionPane.showMessageDialog(null,"添加登录人员失败","提示信息",JOptionPane.YES_OPTION);}}else{//如果密码确认输入错误,打印提示信息JOptionPane.showMessageDialog(null,"密码确认错误,请重新输入","提示信息",JOptionPane.YES_OPTION);}}catch(DbExceptionex){JOptionPane.showMessageDialog(null,ex.getMessage(),"提示信息",JOptionPane.YES_OPTION);}}else{JOptionPane.showMessageDialog(null,"请确认输入是否完整正确","提示信息",JOptionPane.YES_OPTION);}}elseif(name.equals("取消")){dialog.dispose();}}}
2024/9/12 19:34:35 4.13MB java项目 餐饮管理系统
1
struts1+spring+hibernate框架整合实现简单登录源码,具体整合过程http://wenku.baidu.com/view/60262dae4693daef5ef73def.html
2024/9/5 17:15:26 17.35MB ssh框架
1
通过自定义View画出一个长按出现水漫效果进度条的按钮,当进度条满了进行接口回调,告诉当前运行的Activity,动画执行完毕。
详细解析博文:https://blog.csdn.net/Nobody_else_/article/details/113784362
1
欢迎来到科廷VaadinVaadin-on-Kotlin是一个Web应用程序框架,其中包括创建数据库支持的Web应用程序所需的一切。
请参阅官方文档,为。
Vaadin-on-Kotlin不会强迫您使用,依赖注入(DI)或。
默认情况下,它不使用Spring或JavaEE。
相反,Vaadin-on-Kotlin专注于简单性。
View层利用框架提供的面向组件的编程。
Vaadin提供了基于AJAX构建的强大组件。
Vaadin中的编程类似于JavaFX或Swing等传统客户端框架中的编程。
库覆盖了数据库访问层。
vok-orm允许您将数据库行中的数据显示为对象,并使用业务逻辑方法修饰这些数据对象。
当然,您可以决定不使用vok-orm而是与NoSQL集成,或者使用和。
一切都结合了编程语言的简洁性,这使得Vaadin-on-Kotlin是初学者的理想起点。
而且Kotlin是静态类型的,因此您始终可以按住Ctrl键并单击代码,并了解其工作原理!有关入门指南,请参阅官方文档,为。
入门如果尚未安装Java8JDK和git客户端,请安装。
然后,在命令
2024/8/26 12:33:03 1.33MB kotlin crud database sql2o
1
packagecom.example.wzq;importjava.util.ArrayList;importjava.util.List;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;importcom.example.wzq.MyInfo.MyInfoActivity;importcom.example.wzq.gameview.WzqGame;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.os.Parcelable;importandroid.app.Activity;importandroid.content.Intent;importandroid.graphics.Color;importandroid.support.v4.view.PagerAdapter;importandroid.support.v4.view.ViewPager;importandroid.support.v4.view.ViewPager.OnPageChangeListener;importandroid.view.KeyEvent;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.ImageView;importandroid.widget.TextView;importandroid.widget.ImageView.ScaleType;importandroid.widget.Toast;publicclassMainActivityextendsActivityimplementsOnClickListener{ privateViewPagerviewPager; privateListimageViews; //滑动的图片集合 privateString[]titles;//图片标题 privateint[]imageResId;//图片ID privateListdots;//图片标题正文的那些点集合 privateTextViewtv_title; privateintcurrentItem=0;//当前图片的索引号 Intentintent=newIntent(); privateScheduledExecutorServicescheduledExecutorService; //切换到当前显示的图片 privateHandlerhandler=newHandler(){ @Override publicvoidhandleMessage(Messagemsg){ viewPager.setCurrentItem(currentItem); } }; //定义两种颜色设置 staticfinalintCOLOR1=Color.parseColor("#787878"); staticfinalintCOLOR2=Color.parseColor("#ffffff"); //定义四个按钮切换按钮 privateButtonstart_btn=null; privateButtonbluetooth_btn=null; privateButtonmyinfo_btn=null; privateButtonfinish_btn=null; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //生成滚动图片 initImageFlow(); Viewview_
2024/8/21 22:37:40 8.95MB android 五子棋源码
1
因工作后发现积分的重要性,把2年前的渣渣毕业设计共享出来,给要做订餐系统的同学参考,包括前后台,用了SSH+bootstrap+mysql,内涵项目源码,PPT,及部署方法。
毕业论文地址已放百度文库地址:http://wenku.baidu.com/view/16cdb06110661ed9ac51f33e
2024/8/16 6:11:29 17.36MB 毕业设计
1
包含文件说明:1.SolveFlashingAndRedrawv1.0.5纯净版无闪烁的MFC应用框架,实际使用时把此工程改名成你要建立的项目名称,然后开始开发即可。
你熟悉MFC的话研究这个框架的半个小时应该就明白并熟练运用了。
2.SolveFlashingAndRedrawv1.0.5demo版利用SolveFlashingAndRedrawv1.0.4框架写的一个示例小程序,主要展示框架要实现的优点特性。
3.VCRn修改vc工程名工具___作者田彬.exe用网上找到的一个MFC改工程名称的小工具,很实用。
如果你想使用本框架就可以用它来改成你想要的工程名了。
4.未使用本框架的类似功能简化程序没有使用框架的程序,实现的功能和Demo类似。
但是运行之后改变窗口大小等,会发现图形闪烁很厉害!5.SolveFlashingAndRedrawv1.0.5demo版运行截图.jpg6.ReadMe.txt说明文件。
补充说明:工程使用vc6.0开发,如果你用vc6.0双击.dsw文件无法打开,请先打开vc6.0然后把.dsw拖动到vc上面。
如果这种方法还是无法打开,你新建一个vc6.0mfcsdi程序,把示例中框架拷贝到这个新工程中,运行即可,代码量不是太多。
框架说明: /****************************************************** SolveFlashingAndRedraw框架说明 ******************************************************/ /** 项目名称: demo框架 版本号: v1.0.5 第一作者:Jef 地址:中国/江苏 日期:20100724 电子邮箱:dungeonsnd@126.com 版权: 1.您可以修改及免费使用本程序。
2.修改之后附上您的个人信息发送到上面的作者邮箱,作者负责在全面测试后发布您修改后的新版本。
3.您使用本程序而导致任何伤害以及经济损失,由过错方依法承担所有责任,一概与第一作者及合作单位无关。
4.如果您使用本程序则表示您已经同意此版本协议!否则请勿使用! 项目功能: SolveFlashingAndRedraw框架是MFC解决窗口保存及重绘闪烁问题的一种比较好的方案(Win32解决方法类似)。
版本历史: v1.0.120091126第一版本 v1.0.220091212第二版本 1.修改了部分变量的名字使其更符合其意义 2.增加为两个工程,一是带demo例子的,另一是不带demo的纯净版. 3.修改了其中一个错误.如CreateCompatibleDC之后没有调用DeleteDC等. v1.0.3对v1.0.2进行了整理 v1.0.420100416在v1.0.3的基础上进行整理,并增加了裁剪区,提高了绘图效率! v1.0.520100724 1.添加了一个工具类CMemBmpDc,帮助产生一个内存DC,并把指定的内存位图选进去。
方便绘图。
2.演示了在适当时机如何高效画图,见Demo版的DrawSinwave(boolbDrawOnScreen)函数。
演示了用两种方法来绘图, 方法1.直接绘图到屏幕上, 同时绘图到内存位图上,内存位图不会立即贴到屏幕上减少了内存拷贝的时间,提高了效率, 将来窗口失效时OnPait贴图到屏幕上. 这种方法的优点时减小了不必要的内存拷贝,缺点时当绘图内存复杂并且非常耗时可能会导致闪烁。
故适用于像本Demo的这样绘图(本例函数只绘制一小段直线)。
方法2.绘制到内存位图上后把应该重绘的这一小块设成裁剪区,然后立即OnPait重绘这个裁剪区。
运行步骤: 直接运行demo里面的程序,在窗口上任意拖拉鼠标画线,然后点击菜单栏的几个示范菜单项,然后移动窗口、 改变窗口大小、最大最小化窗口、用其它窗口覆盖此窗口、鼠标放到任务栏。


以上种种操作观察窗口内的图像变化。
可以发现窗口内图像几乎看不到闪烁,而且窗口的元素已经保存下来重绘时任然可以看到图像。
如何使用: 进行项目开发时,可以先建立项目,然后把本解决方案框架拷贝到新建项目中即可。
也可以自己根据需要修改纯净版。
其它: 友情提示,小心View类头文件及View类的实现文件中有说明,使用时别把它弄到你实际项目里哦! 进行大量复杂的图形的输出,而且对效率要求特别高
2024/8/16 0:12:36 1.05MB 闪烁 重绘 框架 MFC
1
共 154 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡