IEditableObject的一个通用实现】的更多相关文章

原文:IEditableObject的一个通用实现 IeditableObject是一个通用接口,用于支持对象编辑.当我们在界面上选择一个条目,然后对其进行编辑的时候,接下来会有两种操作,一个是保持编辑结果,一个取消编辑.这就要求我们保留原始值,否则我们只能到数据库里面再次查询.IeditableObject接口的三个方法定义为我们定义了这个行为规范: public interface IEditableObject { // 开始编辑,一般在此方法内创建当前对象副本 void BeginEdi…
1.1在这之前,我们需要了解程序的编译过程 a.预处理:检查语法错误,展开宏,包含头文件等 b.编译:*.c-->*.S c.汇编:*.S-->*.o d.链接:.o +库文件=*.exe 1.2体验在VC下程序的编译 a.先编译,在链接 b.修改了哪个文件,就单独编译此文件,在链接 c.修改了哪个头文件,就单独编译使用该头文件的源文件,在链接 1.3在linux下实现上述要求 2.编写一个测试的Makefile 2.1直接编译链接 gcc -o test a.c b.c 缺点:改变其中一个文…
GNU Make简介 大型项目的开发过程中,往往会划分出若干个功能模块,这样可以保证软件的易维护性. 作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相应的更新.如果通过手动去完成这个工作的话,对于小型的项目可能还行,但是对于比较大型的项目就几乎是不可能的. 因此Linux 系统提供了一个自动维护和生成目标程序的工具 make,它可以根据各个模块的更改情况去重新编译连接目标代码 Make 工具的作用就是实现编译连接过程的自动化.它定义了一种语言,用…
在实际工作中,你肯定会经常的对树进行遍历,并在树和集合之间相互转换,你会频繁的使用递归. 事实上,这些算法在逻辑上都是一样的,因此可以抽象出一个通用的算法来简化工作. 在这篇文章里,我向你介绍,我封装的两个类,TreeIterator和TreeMap,使用他们,你不必再写递归就可以在任意的树和任意的集合之间相互装换. 一 TreeIterator1.1 TreeIterator功能描述: TreeIterator封装了对树的遍历算法,他提供了如下功能: 1)遍历树 2)将任意一颗树转换为一个任意…
假如数据库表中某个字段存放的值“1”和“0”分别代表“是”和“否”,要在DataGridView中显示“是”和“否”,一般用两种方法,一种是在sql中直接判断获取,另一种是在DataGridView的CellFormatting事件中设置.下面介绍的是第二种情况下的处理.举个例子,DataGridView的第4列需要在金额后面加个“元”,在第14列根据1和0显示为相应的是和否,在显示的时候可以这样设置: private void dgData_CellFormatting(object send…
本文主要描述一个通用的权限系统实现思路与过程.也是对此次制作权限管理模块的总结. 制作此系统的初衷是为了让这个权限系统得以“通用”.就是生产一个web系统通过调用这个权限系统(生成的dll文件), 就可以实现权限管理.这个权限系统会管理已生产系统的所有用户,菜单,操作项,角色分配,权限分配,日志等内容. 实现此功能从正常访问和非法访问两个方面入手.正常访问即用户登录系统后只能看到或操作自己拥有的菜单:非法访问即 通过拼写url等途径访问系统的某个功能:所以程序除了实现用户登录后获取用户拥有的菜单…
为了去重复,写了一个通用的比较容器类,可以用在需要比较的地方,且支持Lamda表达式,代码如下: public class DataComparer<T>:IEqualityComparer<T> where T:class { private Func<T, T, bool> _compareFunc; public DataComparer(Func<T,T,bool> compareFunc) { this._compareFunc = compare…
这篇文章里我们主要讨论下如何在Java里实现一个对象池.最近几年,Java虚拟机的性能在各方面都得到了极大的提升,因此对大多数对象而言,已经没有必要通过对象池来提高性能了.根本的原因是,创建一个新的对象的开销已经不像过去那样昂贵了. 然而,还是有些对象,它们的创建开销是非常大的,比如线程,数据库连接等这些非轻量级的对象.在任何一个应用程序里面,我们肯定会用到不止一个这样的对象.如果有一种很方便的创建管理这些对象的池,使得这些对象能够动态的重用,而客户端代码也不用关心它们的生命周期,还是会很给力的…
本文转自:http://www.7139.com/jsxy/cxsj/c/200607/114291.html使用ADO.NET时,每次数据库操作都要设置connection属性.建立connection.使用command.事务处理等,比较繁琐,有很多重复工作.能不能把这些繁琐的.常用的操作再封装一下,以更方便.安全地使用.下面这个类就是一种尝试:using System;using System.Data.SqlClient;using System.Text;using System.Da…
以前写反射只是用在了与设计模式的结合上,并没有考虑到反射可以与DAO结合.也是一个偶然的机会,被正在上培训的老师点到这个问题,才考虑到这个可能性,于是上网参考各种代码,然后自己动手开发了一个通用DAO. 大家除学JDBC时,也会有这种感触,一般写的DAO只能用在一张表上,不能通用,如果你的程序有多张表,就需要写多个DAO,或者使用一些复杂设计来达到这个目的.而这个反射方式实现的DAO,就不需要很复杂的设计,就可以实现DAO的通用. 这个通用是有前提的,就是DAO接受的参数必须是绝对符合JavaB…
昨天遇到一个比较奇怪的需求,大致是需要在服务器上部署一个http服务,但是服务的具体功能不知道,以后在客服端实现.这里介绍一下系统背景,有一个系统运(部署在美国)行了很多年了,给系统产生了很多文件,现在需要把该系统的文件(依据数据库中的记录)来做相应的archive,做了后发现里面还有一些独立的文件(不与数据库记录相关),那么这时我们需要删除这些独立的文件,或者把它们remove到其他地方,需要得到这些文件的list.后来想了想以后会不会还有别的什么需求啊,所以就想做一个通用的HTTPhandl…
创建一个通用视图   抽取出我们代码中共性的东西是一个很好的编程习惯. 比如,像以下的两个Python函数:     def say_hello(person_name): print 'Hello, %s' % person_name def say_goodbye(person_name): print 'Goodbye, %s' % person_name 我们可以把问候语提取出来变成一个参数:     def greet(person_name, greeting): print '%s…
前言 搜索功能是一个很常用的功能,当然这个搜索不是指全文检索,是指网站的后台管理系统或ERP系统列表的搜索功能.常见做法一般就是在搜索栏上加上几个常用字段来搜索.代码可能一般这样实现 StringBuilder sqlStr = new StringBuilder();if (!string.IsNullOrEmpty(RealName)){    sqlStr.Append(" and RealName  = @RealName");}if (Age != -1){    sqlSt…
最近一两年用C++写了好几个基于TCP通信类型程序,都是写一个小型的服务器,监听请求,解析自定义的协议,处理请求,返回结果.每次写新程序时都把老代码拿来,修改一下协议解析部分和业务处理部分,然后就一个新的程序就诞生了.如此这般做了几回,就萌生了一个想法:是不是可以做一个通用的服务器程序,每次只要实现很少的代码就可以构建的一个新的服务器程序? 巧的是在用C++写代码的时候,我刚好碰到过一个叫做Push Framework的开源项目(在这里可以找到:www.pushframework.com),就是…
日常生活中,上班下班坐地铁已经是常事,每当我想去某一个远一点的地方,如果有地铁首选就是地铁,因为方便嘛!每次坐地铁,我们都是凭肉眼去得出我们心中最佳的换乘方案,但是,如果对于线路较少的城市来说,这个方法是最快的,但是如果对于线路较多的城市,例如北京或者上海,十几条线路交叉穿梭,我们可能看到都晕了,怎么坐才是时间最短路程最短的,我们要算出来不是不可以但是很麻烦,我们也可以想一想,百度地图的地铁换乘算法是怎么实现的,于是,闲着没事,我就想写一个通用的地铁换乘查询程序,想用计算机运算得出科学一点的换乘…
rabbitmq作为消息队列可以有消息消费确认机制,之前写个基于redis的通用生产者 消费者 并发框架,redis的list结构可以简单充当消息队列,但不具备消费确认机制,随意关停程序,会丢失一部分正在程序中处理但还没执行完的消息.基于redis的与基于rabbitmq相比对消息消费速度和消息数量没有天然的支持. 使用rabbitmq的最常用库pika 不管是写代码还是运行起来都比celery使用更简单,基本能够满足绝大多数场景使用,用来取代celery  worker模式(celery有三个…
在iOS开发中,经常是要用到UITableView的,我曾经思考过这样一个问题,为什么任何种类的model放到TableView和所需的cell里面,都可以正常显示?而我自己写的很多view却只是能放一种特定的model,就好像我这个view是专门为了展示这个model所设计的?有没有一种设计方法,使得我所设计的一些view也可以放任何合适种类的model,并且按照预期的那样正确展示呢? (前一篇记录了个人理解的OC开发中代码规范以及代码通用性,这一篇主要是设计一个通用的进度条.) 为了解决这个…
需求 一个通用的日志包,应该满足以下几个需求: 兼容 log.Logger,标准库大量使用了 log.Logger 作为其错误内容的输出通道,比如 net/http.Server.ErrorLog,所以兼容 log.Logger 是首要的需求: 自定义配置,不同的运行环境,往往需要不同的日志输出配置,在不重新编译源码的情况下,就能改变配置也应该成为一项标配: 不同的输出类型,根据目前市面上大部分的日志库,我们把日志分为以下六种类型:INFO.WARN.DEBUG.TRACE.ERROR 和 CR…
一年又要到年底了,vue3.0都已经出来了,我们也不能一直还停留在过去的js中,是时候学习并且在项目中使用一下Ts了. 如果说jsx是基于js的话,那么tsx就是基于typescript的 废话也不多说,让我们开始写一个Tsx形式的button组件, ts真的不仅仅只有我们常常熟知的数据类型,还包括接口,类,枚举,泛型,等等等,这些都是特别重要的 项目是基于vue-cli 3.0 下开发的,可以自己配置Ts,不会的话那你真的太难了    我们再compenonts中新建一个button文件夹,再…
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复162或者20151016可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 注释在CRM中的显示是比较特别,我们可以自定义一个页面来显示注释吗?如果可以,可以做成通用的吗?这篇博文将会带你制作一个通用的注释显示页面,并为每条注释生成了超级链接,点击可以在弹出页面中查看或者编辑注释. 首先要新建一个类型为 HTML Page 类型的Web资源,操作步骤如下.我这里使用了Developer Toolkit进行…
上篇文章是关于建造者设计模式的,今天顺便封装一个通用的 PopupWindow 来实践一下, 同时也方便以后使用 PopupWindow,本文将从下面几个方面来介绍 PopupWindow 及其封装,具体如下: 概述 常用方法 基本使用 封装 PopupWindow 使用封装后的PopupWindow 显示效果 概述 PopupWindow 表示一个弹窗,类似于 AlertDialog,相较 AlertDialog 来说 PopupWindow 使用起来更灵活,可有任意指定要显示的位置,当然能够…
前几天要做一个数据导出Excel 我就打算写一个通用的. 这样一来用的时候也方便,数据主要是通过Orm取的List.这样写一个通用的刚好. public static void ListToExcel(List<dynamic> ts, string[] RowName, string[] ListCorrespondRow, bool IsRowName = false) { //创建工作簿对象 IWorkbook workbook = new HSSFWorkbook(); //创建工作表…
目录 Makefile Makefile规则与示例 为什么需要Makefile Makefile样式 先介绍Makefile的两个函数 完善Makefile 通用Makefile的使用 通用的Makefile解释 零星知识点 make命令的使用 即时变量与临时变量 变量的导出(export) Makefile中的shell Makefile中放置第一个命令 假想目标 小知识 常用函数 *通用Makefile设计思想 一个通用Makefile 本程序的Makefile分为3类: 源码(注释版) M…
-- Author: Mis Chen-- Create date: 2018年5月15日 11:21:47-- Description: 创建一个通用分页查询-- =============================================CREATE PROCEDURE [dbo].[SP_getDataByPageIndex] @pagesize int, --每页行数 @pageindex int, --页数 @tablename nvarchar(100), --表名 @…
封装一个文件上传类完成基本功能如下: 1.可上传多个或单个文件 2.上传成功返回一个或多个文件名 3.上传失败则返回每个失败文件的错误信息 上传类中的基本功能: 1.构造参数,用户可以自定义配置参数,不限大小写,不限个数,不限顺序 2.检测:保存路径.文件类型.文件大小.文件名是否为随机文件名等 3.错误消息:如果在判断过程中出现错误,则生成错误号并返回错误消息 上传类如下: Code<?php /** * 通用文件上传类 */ class FileUpload { private $filep…
转载自:http://blog.csdn.net/arthurchenjs/article/details/6044616 lipo lipo –create Release-iphoneos/libiphone.a Debig-iphonesimulator/libiphone.a –output libiphone.a 看到这样的命令行,你会怎样理解呢. 很简单,我将模拟器和设备的静态库文件合并成一个文件输出了,以后在发布可以库的时候不用发一个模拟器版的和一个真机版的了,这样子的一个库可以在…
据http://bbs.chinaunix.net/thread-2300778-1-1.html的讨论,发现还是有很多人在问通用Makefile的问题,这里做一个总结.也作为以后的参考.       笔者在写程序的时候会遇到这样的烦恼:一个项目中可能会有很多个应用程序,而新建一个应用程序则所有的Makefile都要重写一遍,虽然可以部分的粘帖复制,但还是感觉应该找到更好的解决途径:另外当一个应用程序中包含多个文件夹时通常要在每个目录下创建一个Makefile,当有数十个文件夹时,要创建如此多的…
又很久没写博客,今天记录一个SQLserver通用分页存储过程(适用于SqlServer2000及以上版本) 1.支持连表 2.支持条件查询 USE [MYDB] GO /****** Object:  StoredProcedure [dbo].[SP_CommonPage] SET QUOTED_IDENTIFIER ON GO ------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: ---------------…
注1:本文译自Sprite Kit Tutorial: Making a Universal App: Part 2 目录 动画的定义:可行性 属性列表 添加游戏逻辑 添加音效 何去何从 上一篇文章中,创建了一个基本的游戏程序:一些可爱的鼹鼠从洞里面跳出来.并且为了能够让程序很好的运行在iPhone 3.5英寸,iPhone 4英寸,iPad和iPad Retina上,还花费了大量的篇幅介绍UI设计和坐标系相关知识. 本文,将给鼹鼠添加一些可爱的动画:笑和被打时的表情,并添加一种玩法:可以通过敲…
17年4月,开始学习angular2,到5月跟着升级到angular4.目前还在学习,搭建中.我的最终目的是用angular4框架搭建一个后台管理系统.这里使用了三个关键的外部库. 1.使用adminLte 皮肤.这个是bootstrap的一款皮肤.风格比较严肃.所以选这个皮肤: 2.引用了ngx-bootstrap.这个是bootstrap对应angular的库: 3.使用wijmo5 flexgrid表格,号称是angular下最好的表格组件. 本章说下如何搭建一个flexgrid通用分页器…