`
sinokaka
  • 浏览: 327055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

动态?不动态?

阅读更多
   这两天一直在看那本著名的Ruby on Rail的经典书籍《应用Rails进行敏捷Web开发》,有感Rail提供的框架,和Ruby的动态语言的优越性,自己也在一点点的思考着java,当然了很多时候都是自己胡思乱想了。
   1:动态方法参数。
   当然了,现在的java5已经提供了动态方法参数了,我现在一直都在J2SE1.4.2上面开发,所以一直没有体验到这个优点,不过1.4上实现这个效果也不难,如果参数是一个参数bean的话,那么本身就是一个动态参数列表了,你设置几个都可以了,或者是一个Map,那么更可以动态添加了。
   2:动态增加字段。
如果我的Bean里面只有一个属性存个Map的话,或者我的Bean就是一个Map的话,那么动态增加字段也是易如反掌,也是可以很轻松的。各种类型也都可以。这个主要是有感于Rails使用的ORM,只在数据库中保存字段,自己开始想java如何实现:)
   主要是想了这几个方面,想了想动态语言有他的方便之处,可是如果遇到重构的时候怎么办呢,名字变了。方法名变化了,是否也能体现优越性呢。没有了强类型的检查,写的时候,天马横空的,也可能是一个问题,就像java一样,很多地方都用Map实现,那么可能也会写出很方便的方法,但是会不会出现编译的时候,万事大吉,可是跑起来的时候,异常满天飞呢,java又不像ruby一样,改了就跑,还需要编译,重新启动中间件等。
   动态?不动态?想的自己有些头疼。
分享到:
评论
8 楼 firebody 2007-01-19  
抛出异常的爱 写道
两方的斗争由来以久。。。。
动态与非动态的历史几乎一样的长久。。。
但由于非动态对内存CPU的要求过高以至几十年抬不起头来
直到网页开发时才有了一丝生机。。。
现在不过是几十年压抑的知识与智慧的反弹。。。


test for quote
7 楼 sinokaka 2007-01-18  
怎么越说越远了。
我就是看着Rails的时候,顺道想了想java如何实现,怎么来实现的时候,想起来这个所谓的动态来,因为动态了,自然会有很多灵活性,但是也丧失了很多的严谨性。很多东西都是两面性的,有得自有失了。随便发发牢骚,写写想法而已。
也顺道考虑考虑自己的开发是否有能改进的地方。
6 楼 抛出异常的爱 2007-01-17  
两方的斗争由来以久。。。。
动态与非动态的历史几乎一样的长久。。。
但由于非动态对内存CPU的要求过高以至几十年抬不起头来
直到网页开发时才有了一丝生机。。。
现在不过是几十年压抑的知识与智慧的反弹。。。
5 楼 LucasLee 2007-01-17  
动态参数没有什么奇特的,它也不是什么参数都能动态的,动态参数只能放在方法参数的最后面,实际上相当于是一个数组,因为在方法内部使用参数时就是一个数组。
4 楼 sinokaka 2007-01-17  
:)是啊,两种不同的东西,关注点不一样。我只是自己考虑一下,从java的角度,思考一下所谓的动态语言。
3 楼 抛出异常的爱 2007-01-17  
还是那句话,两种不同的工具
如果想要作等java6出来对动态语言支持了java也是可以作到动态的。。。
2 楼 sinokaka 2007-01-17  
代码生成工具如果生成的话,那么就没有所谓的动态了,那么所有的东西都存在多份了,也就是违反了DRY原则了。
Rails的ActiveRecord让我觉得比较牛的地方就是它在类里面不保存任何数据库字段的任何东西
1 楼 抛出异常的爱 2007-01-16  
sinokaka 写道
   这两天一直在看那本著名的Ruby on Rail的经典书籍《应用Rails进行敏捷Web开发》,有感Rail提供的框架,和Ruby的动态语言的优越性,自己也在一点点的思考着java,当然了很多时候都是自己胡思乱想了。
   1:动态方法参数。
   当然了,现在的java5已经提供了动态方法参数了,我现在一直都在J2SE1.4.2上面开发,所以一直没有体验到这个优点,不过1.4上实现这个效果也不难,如果参数是一个参数bean的话,那么本身就是一个动态参数列表了,你设置几个都可以了,或者是一个Map,那么更可以动态添加了。
   2:动态增加字段。
如果我的Bean里面只有一个属性存个Map的话,或者我的Bean就是一个Map的话,那么动态增加字段也是易如反掌,也是可以很轻松的。各种类型也都可以。这个主要是有感于Rails使用的ORM,只在数据库中保存字段,自己开始想java如何实现:)
   主要是想了这几个方面,想了想动态语言有他的方便之处,可是如果遇到重构的时候怎么办呢,名字变了。方法名变化了,是否也能体现优越性呢。没有了强类型的检查,写的时候,天马横空的,也可能是一个问题,就像java一样,很多地方都用Map实现,那么可能也会写出很方便的方法,但是会不会出现编译的时候,万事大吉,可是跑起来的时候,异常满天飞呢,java又不像ruby一样,改了就跑,还需要编译,重新启动中间件等。
   动态?不动态?想的自己有些头疼。


两种不同的东西。。。不必太在意
用市面上的一些代码生成工具也可以达到。。。
不必要用map这种东东。。。。

相关推荐

    什么是动态规划(Dynamic Programming)?动态规划的意义是什么? - 知乎1

    无后效性是指在进行决策时,一旦做出选择,后续的选择不应影响之前决策的有效性。例如,在找零问题中,无论最后如何选择面值的硬币,之前选择使用最大面值的决策仍然是正确的。 最优子结构体现在问题的解可以通过子...

    贪心算法和动态规划以及分治法的区别? (1) 贪心算法和动态规划.pdf

    然而,与动态规划不同,分治法的子问题通常是独立的,不共享子问题的解,这意味着其子问题的解决可能更加简单,但也可能比动态规划需要更多的递归调用。 在探讨了这三种算法的基本概念和策略后,我们可以总结它们...

    电源动态响应测试,什么样的波形算合格

     工程师在设计电源时,动态响应是必不可少的一项测试指标。由于涉及环路问题一直是很多工程师的心病,下面从几个方面来谈一谈动态响应希望对大家有所帮助:  为什么开关电源需要测试动态响应?  电源动态响应的...

    解决layui动态添加的元素click等事件触发不了的问题

    在页面加载完成时候 ‘.add_project’ 元素是可以触发click时间的,当动态添加 ‘.add_project’ 时候,新添加的元素却触发不了click事件,类似下面的写法: $(".add_project").on('click', function(){ alert&#40...

    循环动态播放照片动态壁纸app - Android项目源码

    稳定工具可以定义不移动的点。 使用遮罩工具,您可以定义图像中不会移动的区域。 创建您的动画循环动态壁纸。 您还可以从给定的循环照片动态动态壁纸集合中设置壁纸。 保存您的创作并与朋友、家人和所有社交网站分享...

    ????? ????.rar_matlab codes

    .rar_matlab codes”可能由于字符编码问题显示不正常,但根据提供的标签“matlab_codes”,我们可以推断这是一个包含MATLAB代码的压缩文件,可能与某个项目或研究有关。描述中的“Reconfiguration sample”指出这...

    Q703119 问题的回答 c# combobox如何动态模糊查询?v2

    4. 关于"修正了几个问题,初始化不加载",这可能指的是在项目初始化时避免立即加载大量数据到ComboBox。通常,我们会在需要时才加载数据,如首次显示或用户开始输入时。这样可以避免一次性加载大量数据导致的性能...

    动态规划算法经典题目

    考虑第 i 个箱子放与不放的情况,注意能选的条件是 j ≥ weight[i] 并且 capacity≥j-weight[i]。使用动态规划可以解决这个问题。 代码实现: program CQF_BOX; uses math; const maxn=1000; var weight,capacity:...

    音效素材库 PPT动态音效 转场音效 14个.zip

    在PPT演示中,动态音效和转场音效的作用不可小觑。动态音效通常用于强调特定的元素,如图表变化、按钮点击等,使观众对视觉变化有更强烈的感知。而转场音效则在幻灯片切换时播放,帮助平滑过渡,提高观众的观看体验...

    SuperMap iServer 对数据服务查询结果进行动态投影Demo

    地图动态投影之后又做了切片?数据量太大没办法对数据集做...使用数据服务查询出的结果不能叠加在地图上显示?不要急!SuperMap iServer 8C(2017)新特性:对数据服务查询结果动态投影! 让我们来看一看具体怎么做吧。

    Quartz动态修改时间,java实现修改CronExpression方法

    在实际开发中,动态修改CronExpression的场景可能包括但不限于:根据业务需求实时调整任务执行频率,或者在某些特定条件下临时暂停或恢复任务执行。通过掌握这些技术,你可以更灵活地管理和控制Quartz定时任务,以...

    vfp 动态添加控件的事件绑定处理

    然而,仅创建和添加控件还不足以使它们响应用户的操作。我们需要为这些控件绑定事件处理程序。VFP的`BIND EVENT`函数用于这个目的。基本语法如下: ```vfp BIND EVENT EventName TO MethodName [OF Object] ``` ...

    Android-动态修改APP桌面图标

    产品问了一句:“图标能不能支持服务端动态下发?”,我想了一下回复他:“这是不可能的,设想一下,APP提交审核时候使用的是合规图片,过审之后,动态下发的时候突然下发了一张违规图片(比如:黄赌毒),应用市场...

    国科大陈玉福算法作业2018

    一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。 这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长。 平均时间复杂度是指...

    代码动态设置view或布局的宽高

    这就不能用XML文件写成固定值,而需要在java代码中动态设置。 网上有一些教程使用relativeView.setLayoutParams(new RelativeLayout.LayoutParams(100,200));的方法,可是发现这样设置很容易抛错; 因此有人指出不能...

    PPT插入excel动态图表

    在excel中可以通过窗体或ActiveX控件达到动态控制图表显示的目的,但当Excel图表作为对象内嵌到PPT后,在PPT播放模式下,所有在Excel对象中的控件都是不可选的,只能在PPT的编辑模式下双击对象后在Application.Excel...

    Qt界面动态库被MFC对话框调用

    简介:本人学习Qt一个星期了,利用Qt做的仿360界面,然后打包成动态库。 用C++的MFC对话框按钮调用Qt界面动态库,经测试成功。

    Spring @Scheduled定时任务动态修改cron参数

    `@Scheduled`注解是Spring Framework中用于创建定时任务的重要工具,它允许开发者在不重启应用的情况下,实现定时任务的动态配置,特别是修改cron表达式来调整执行周期。 在Spring中,定时任务主要通过`@Scheduled`...

    动态显示当前时间的js

    在JavaScript编程中,动态显示当前时间是一个常见的需求,特别是在网页设计和开发中。"动态显示当前时间的js"就是一种实现这一功能的解决方案,它能够兼容所有主流浏览器,包括Chrome、Firefox、Safari、Edge以及...

    (入门)什么是AOP?什么是代理模式?怎么设计日志拦截器?

    通过这样的设计,我们可以在不修改原有业务代码的情况下,方便地添加、修改和移除日志功能,提高了代码的灵活性和可维护性。了解并熟练运用AOP和代理模式,对于提升软件开发的效率和质量有着显著的作用。

Global site tag (gtag.js) - Google Analytics