`
zh_harry
  • 浏览: 103255 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
877aca81-daac-33c8-8bf9-3a886cebc6c3
自己动手写java 框架
浏览量:28748
社区版块
存档分类
最新评论

疯子在思考之自己动手写MVC

    博客分类:
  • JAVA
阅读更多
MVC-1
http://lizhizhang.iteye.com/blog/1912005
MVC-2
http://lizhizhang.iteye.com/blog/1913546
自己动手写MVC3,前两篇我们分析了MVC的基础,在这里大家对main函数有争论,接下来会有java多线程的文章,与大家分享。(这里会略带一些tomcat main函数的内容)。
第二篇介绍了为什么要用MVC以及MVC的概念,即什么是MVC。
通过以上的了解,我个人认为,对于开发者来讲,MVC的filter即我们在web.xml中配置的拦截器是不重要的,框架为我们写好了,我们做的事情就是配置一下就可以了,而我们更关注具体的业务逻辑和VIEW,而如果我们自己写一个MVC那么,我觉得关注点就是开发人员不关心的那部分。即filter。业务逻辑和VIEW要留给开发人员自己实现。
那么filter中具体要实现哪些功能呢?

1、action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行
参考struts及spring mvc其实有两种实现方法,对比而言,spring mvc的方法更简单效率更高。

这里附参数注入代码
private Object[] actionIoc(ServletRequest request, ActionEntity actionEntity) {
		// 参数名称列表
		List<String> parameterList = actionEntity.getParameterNameList();
		Class<?>[] parameterClass = actionEntity.getMethod()
				.getParameterTypes();
		BeanFactory beanFactory = BeanFactory.getInstance();
		// 参数列表
		Object[] args = new Object[parameterList.size()];
		for (int i = 0; i < parameterList.size(); i++) {
			String parameterName = parameterList.get(i);
			// 如果是基本数据类型
			if (parameterClass[i].equals(String.class)) {
				args[i] = request.getParameter(parameterName);
			} else {
				Object entity = null;
				try {
					entity = parameterClass[i].newInstance();
				} catch (Exception e) {
					Log.getInstance().error(e);
					return null;
				}
				MethodAccessor methodAccessor = beanFactory
						.getProxyBean(parameterClass[i].getSimpleName());
				Method[] methods = parameterClass[i].getMethods();
				for (Method method : methods) {
					if (method.getName().startsWith("set")) {
						String parameterName4Request = parameterName
								+ "."
								+ StringUtil.setFirstByteLowerCase(method
										.getName().substring(3));
						methodAccessor.set(entity, method.getName(),
								request.getParameter(parameterName4Request));
					}
				}
				args[i] = entity;
			}
		}
		return args;
	}


methodAccessor的思想是这样的
对于模型驱动而言,这里没有采用jdk反射或cglib字节码反射,而是生成一个代理类来变相反射(实际上是对象方法的直接调用)对于这部分思考有兴趣的朋友可以参考reflectasm。

其他代码可以在框架中下载
http://lizhizhang.iteye.com/blog/1896545
有什么意见或建意可以在这里拍砖。
MVC这部分比较简单,大家有什么好想法可以继续补充,接下来ORM....
2
7
分享到:
评论
31 楼 zh_harry 2013-07-31  
freezingsky 写道
博主,我刚才突发兴趣下载了你自己写的MVC框架。同时也花了十多分钟看了一下,发现代码和整个架构上感觉很是轻量,而且思路很好。我在想,你是否能跟着你现在的《疯子思考》系列,最后把自己的框架做一个详细的解说,以及各个部分划分的思路。这部分我想,意义更为重大。

我是这样考虑的,之前的疯子思考系统,如果你都看过的话,会感觉都是为这个框架的铺垫。
接下来是ORM
理论上从0讲起,以后会出框架的demo,和实践性项目。
30 楼 freezingsky 2013-07-31  
博主,我刚才突发兴趣下载了你自己写的MVC框架。同时也花了十多分钟看了一下,发现代码和整个架构上感觉很是轻量,而且思路很好。我在想,你是否能跟着你现在的《疯子思考》系列,最后把自己的框架做一个详细的解说,以及各个部分划分的思路。这部分我想,意义更为重大。
29 楼 alvin198761 2013-07-31  
zh_harry 写道
foible 写道
alvin198761 写道
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。

个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机

人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。

是对的,我刚想回复这位同学,不知道怎么回复呢,你说得这个很对

突破传统的人才会有创新,陈规守旧的人才能守住文明,我们的观念是完全不同的,但不代表谁对谁错,
28 楼 zh_harry 2013-07-31  
大家有真心觉得文章有用的请顶上来,谢谢了
27 楼 zaq369cde 2013-07-31  
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็  ฏ๎๎๎๎๎๎๎๎๎  ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎   ด้้้้้็  ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู
26 楼 zh_harry 2013-07-30  
笨蕉xx 写道
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็  ฏ๎๎๎๎๎๎๎๎๎  ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎   ด้้้้้็  ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู

玩是吧
25 楼 笨蕉xx 2013-07-30  
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็  ฏ๎๎๎๎๎๎๎๎๎  ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎   ด้้้้้็  ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู
24 楼 zh_harry 2013-07-30  
foible 写道
alvin198761 写道
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。

个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机

人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。

是对的,我刚想回复这位同学,不知道怎么回复呢,你说得这个很对
23 楼 foible 2013-07-30  
alvin198761 写道
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。

个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机

人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
22 楼 alvin198761 2013-07-30  
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。

个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
21 楼 zh_harry 2013-07-30  
http://lizhizhang.iteye.com/blog/1915601一篇关于log4j的文章,大家看一下
20 楼 gujian123456 2013-07-30  
heroying 写道
zh_harry 写道
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。

罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。

最基本MVC搞定。

访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.

很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力


我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解


我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。



你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。


说的不错!!!!
补充一下:


MVC
19 楼 zh_harry 2013-07-30  
heroying 写道
zh_harry 写道
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。

罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。

最基本MVC搞定。

访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.

很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力


我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解


我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。



你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。

在学习,多谢指教
18 楼 heroying 2013-07-30  
zh_harry 写道
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。

罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。

最基本MVC搞定。

访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.

很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力


我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解


我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。



你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
17 楼 zh_harry 2013-07-30  
http://vb2005xu.iteye.com/blog/849125
vb2005xu 写道
此处贴一个几年前我关于这个想法的一个帖子 http://vb2005xu.iteye.com/blog/849125 呵呵

兄弟,我看了,咱俩臭味相投
16 楼 vb2005xu 2013-07-30  
此处贴一个几年前我关于这个想法的一个帖子 http://vb2005xu.iteye.com/blog/849125 呵呵
15 楼 vb2005xu 2013-07-30  
支持下 对个人而言 搞这个东西对理解框架结构会理解的够深,我也是这么过来的.建议lz在一定时刻可以阅读spring mvc的源码 再回过头来看你自己的,重复2次之后以后再接触其它的mvc框架就相当的轻松了 个人之见哈
14 楼 lian 2013-07-30  
zh_harry 写道
bevis.cn 写道
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็  ฏ๎๎๎๎๎๎๎๎๎  ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎   ด้้้้้็  ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู

你这玩意怎么 玩的,好神奇啊

同求咋玩的啊 有点神奇!
13 楼 zh_harry 2013-07-30  
freezingsky 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。

罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。

最基本MVC搞定。

访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.

如果从MVC的实现角度来看,这确实是最简单的MVC实现了。不过,看楼主的意思,估计是想把MVC的东西写一遍,同时把一些框架都有的技术也整合到一起,更多是一种示例来理解。但是建议楼主在示例编写时,最好尽可能用最简单的方式去实现,不要过多的考虑旁的,否则这个教程就没完没了。

这是MVC的最后一篇了,大家感兴趣可以看我框架源码,非常简单。有什么好的建议请到回复,谢谢!
http://lizhizhang.iteye.com/blog/1896545
12 楼 zh_harry 2013-07-30  
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。

罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。

最基本MVC搞定。

访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.

很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力


我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解


我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。

相关推荐

    .net(mvc)宾馆管理系统

    在.NET(MVC)框架下,我们可以利用ASP.NET MVC库来构建这些功能模块。预订管理允许用户在线查询房间空闲情况并进行预订;房间管理涉及房间类型、状态、价格的设定和更新;客户管理则涵盖了入住、退房、客户信息的存储...

    《天才在左疯子在右》的基本介绍和推荐理由[定义].pdf

    《天才在左疯子在右》的基本介绍和推荐理由[定义].pdf

    疯子手机apk卸载工具

    疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机...

    疯子CMS_轻简杰奇小说系统.zip

    【疯子CMS-轻简小说系统】是一款专为小说网站设计的内容管理系统(CMS),它以简洁易用为核心理念,旨在让网站管理员能够快速搭建和管理自己的小说平台,无需复杂的操作和大量的技术背景。这款系统可能包含以下关键...

    疯子苹果助手 v1.0.1.318.zip

    首先,疯子苹果助手的特性之一是其海量的正版软件和游戏资源。用户可以在该平台上找到众多官方认证的应用,涵盖娱乐、教育、工具、社交等多个领域,满足不同用户的个性化需求。每日更新的新增应用确保了用户始终能够...

    疯子锁IE插件源码程序演示效果

    在当今数字化时代,个人信息安全和网络隐私保护是广大网民最为关注的问题之一。尤其是对企业或个人电脑上的浏览器而言,防止未经授权的访问和修改就显得尤为重要。在众多浏览器中,尽管Internet Explorer(IE)已...

    读后感《天才在左,疯子在右》.doc

    《天才在左,疯子在右》这本书以其独特的视角探讨了人类思维的边界,通过对话精神病人的经历,引发读者对自我认知和世界本质的深度思考。以下是对书中的几个核心观点的解读: 首先,作者通过描述吃苹果的过程,强调...

    手机助手 疯子助手

    疯子助手是一款为苹果设备用户提供应用下载和游戏破解的软件,疯子助手里提供了海量不闪退应用和近千款极高有效度的ios热门游戏存档。 疯子助手完美支持不越狱的iPhone和iPad等iOS设备,是一款下载安装和管理软件、...

    初中语文文摘社会疯子

    【描述】: 该文摘通过讲述一个看似疯子的人物,揭示了社会中某些不正常的现象,引发对正常与疯狂界限的思考。 【标签】: 资料 【正文】: 这篇文摘通过一个特殊的角色——"疯子",探讨了社会规范和个人行为之间的...

    电脑疯子GHOST-WIN7-SP1旗舰版(64位).doc编程资料

    电脑疯子GHOST-WIN7-SP1旗舰版(64位).doc编程资料

    读后感ۥ天才在左疯子在右精选.doc

    《天才在左,疯子在右》这本书以其独特的视角揭示了人类思维的多样性和深度,让人重新审视何为正常,何为异常。书中的故事和人物让我们意识到,那些被我们视为“疯狂”的想法,也许正是创新和突破的源泉。以下是对书...

    疯子页面采集器 v4.0

    在网页抓取领域,"疯子页面采集器"凭借其易用性和强大的功能,成为众多用户的首选。它能够对未加密的网页站点进行有效的数据采集,这意味着用户可以从中获取到公开的网页内容,而不涉及网站的后台或私密数据。这种...

    C# mvc 订单系统(数据库+源码)

    在MVC模式下,C#被用来创建动态、数据驱动的Web应用程序,其中模型负责业务逻辑,视图负责展示,控制器处理用户请求并协调模型和视图。 MVC(Model-View-Controller)是一种设计模式,旨在分离应用程序的业务逻辑、...

    疯子ftp上传工具传送数据到服务器2.0.zip

    疯子ftp上传工具传送数据到服务器 ftp上传工具 ftp服务器上传 ftp客户端 ftp服务器客户端 2.0新功能 密码加密 在线更新 更新缓存错误

    疯子ftp上传工具源码传送数据到服务器源码版.rar

    在这个"疯子ftp上传工具源码传送数据到服务器源码版.rar"压缩包中,包含的源码可能是一个实现了FTP协议的上传工具,允许用户将本地文件上传至远程服务器。 FTP上传工具的核心功能通常包括以下部分: 1. **连接建立...

    初中语文文摘历史父亲不是疯子

    在历史的长河中,常常有那么一些人物,他们或因独特的个性,或因与社会主流格格不入的行为而被人误解,甚至被冠以“疯子”的标签。然而,当我们在历史的尘埃中细细打捞这些人物的故事时,我们往往能够发现,这些所谓...

    推箱子疯子版.zip

    "推箱子疯子版"是一款基于经典益智游戏"推箱子"的升级版本,它在传统的游戏基础上增加了新的挑战和元素,旨在为玩家提供更为刺激和烧脑的游戏体验。在这个疯狂的版本中,关卡设计可能更为复杂,规则可能有所调整,...

    DELPHI 的仿QQ疯子 不完全

    【DELPHI 的仿QQ疯子 不完全】项目是一个基于DELPHI开发的软件,旨在模仿QQ疯子的部分特性。...通过不断学习和实践,开发者可以逐步提升自己的技能,完善这个不完全的仿QQ疯子应用,使其更加接近原版的功能和体验。

    疯子扫描器

    在数据扫描方面,疯子扫描器不仅能够读取文件内容,还可能包括文件属性、元数据和隐藏文件。这对于数据安全和隐私保护来说具有重要意义,因为许多敏感信息可能隐藏在这些不显眼的地方。同时,它可以帮助用户识别网络...

    疯子页面采集器教程

    【疯子页面采集器教程】 疯子页面采集器是一款强大的网页数据抓取工具,它能够帮助用户快速、高效地从互联网上抓取所需信息。在本教程中,我们将深入探讨这款采集器的功能、使用方法以及如何利用它进行网页数据的...

Global site tag (gtag.js) - Google Analytics