ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 夜行

[分享] 设计模式思想在Excel VBA 类中的基础应用

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2015-4-26 10:52 | 显示全部楼层
本帖已被收录到知识树中,索引项:类和类模块
excelhomesnake 发表于 2015-4-25 15:18
vba是支持接口继承的。这也是在vba这种基于对象的语言中,唯一实现多态的方法。而多态,才是设计模式的核 ...

一年前的坟贴了,那个楼主除了发这么一个哗众取宠的帖子之外骗取技术分之外再无作品,对这件事情很失望也不想多说了,本来认为应该都是热爱技术的人在这里讨论,看来还是有很多其他的东西在里面。
vba 实现多态是间接实现的,如你所说的接口继承 。而且vb的类模块比起真正支持面向对象的语言也有很多限制,那么vb 就实现不了面向对象嘛,当然不是这样。引申来看,所有的代码最终都变成机器码,那么所有面向对象面向过程面向函数无非都是一些概念,严格的说即使汇编也能实现面向对象,就是没有人吃的那么饱去这么做而已了。
再说设计模式,设计模式核心是多态是对规模达到一定程度的项目才适用的,而vba 恰恰在开发稍大型的项目上就难以胜任,这本身就是极大的矛盾。不说了,清者自清。观点不同,不说理,人身攻击,还拿技术分。进知识树,真搞笑。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-4-26 15:07 | 显示全部楼层
hehex 发表于 2015-4-26 10:52
一年前的坟贴了,那个楼主除了发这么一个哗众取宠的帖子之外骗取技术分之外再无作品,对这件事情很失望也 ...

再无作品?——你是瞎子吧!
骗技术分?——你当版主们是瞎子吧?
人身攻击?——你不攻击我,我攻击你干嘛?
进知识树,怎样?
拿技术分,又怎样?
有本事你也进,你也拿丫!
——没素质的人!!!!

TA的精华主题

TA的得分主题

发表于 2016-1-25 10:09 | 显示全部楼层
本帖最后由 yiyiyicz 于 2016-1-25 10:18 编辑
hehex 发表于 2015-4-26 10:52
一年前的坟贴了,那个楼主除了发这么一个哗众取宠的帖子之外骗取技术分之外再无作品,对这件事情很失望也 ...


由于需要编写类模块,又来EH中找以前的资料,又翻到这个帖子,又看了一遍,也看了知识树中不少我的回帖
本人是学机械的,估计这里回帖的人多数都不是学计算机出身的。我们编程是为了用,却遇到不少的困难。
遇到最多的就是怎么整理思路,让脑袋里的想法更容易在计算机里实现,而且不要留下遗憾,比如需要回头去改之前的代码,千万不要闹到崩溃。等等等等。简单说,就是前面提到的“条理
现在在做3DCAD的插件。不否认,与其用VBA实现所有的设想,不如用点别的语言。但是,我就是从VBA入门学的编程(以前学的计算机语言,现在都没人用了,早忘了)。别看VBA简单,类的思路,面向对象的思想,在VBA中其实都可以实现,入门级的,通过VBA来理解这是个什么东西,能干点什么。
一些软件编程的规则、规范,一些专业人士总结出来的忠告,也可以在VBA中试一试
现在,一些复杂的模型驱动、复杂的传递链的模型演示,我还是觉得用excel很方便,尤其是思路形成之初,在excel表中各种测试十分方便。模型走通了,再用别的语言写,编译。
一些算法,在EH中也能找到,也很好理解

每个东西的存在,都有他的理由

TA的精华主题

TA的得分主题

发表于 2016-1-25 10:26 | 显示全部楼层
高手之间的辩论,我认为是个好事。让我等初级水平知道什么可以学,什么目前不用学,或者不至于拨苗助长。毕竟,好东西很多,但是适用方面肯定不是面面俱到。我支持楼上各位大师的辩论。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-26 11:18 | 显示全部楼层
yiyiyicz 发表于 2016-1-25 10:09
由于需要编写类模块,又来EH中找以前的资料,又翻到这个帖子,又看了一遍,也看了知识树中不少我的回帖 ...

面向对象的思想,在VBA的实现,下面几篇有做了一些初步的探讨,大大也可以看看哈……嘿嘿……

第一篇:http://club.excelhome.net/thread-1200059-1-1.html
第二篇:http://club.excelhome.net/thread-1200435-1-1.html
第三篇:http://club.excelhome.net/thread-1200865-1-1.html
第四篇:http://club.excelhome.net/thread-1203253-1-1.html
第五篇:http://club.excelhome.net/thread-1203729-1-1.html
第六篇:http://club.excelhome.net/thread-1204140-1-1.html

TA的精华主题

TA的得分主题

发表于 2016-1-26 15:53 | 显示全部楼层
能举例说明类如何使用就更好了

TA的精华主题

TA的得分主题

发表于 2016-1-27 20:36 | 显示全部楼层
本帖最后由 yiyiyicz 于 2016-1-28 08:00 编辑
夜行 发表于 2016-1-26 11:18
面向对象的思想,在VBA的实现,下面几篇有做了一些初步的探讨,大大也可以看看哈……嘿嘿……

第一篇 ...


挺不错的

至于实际使用,比如,在一个程序中,利用一个类模块,生成n个实例。n事先不知道。这n个实例对象相互之间有联系,怎么办?
单层继承,可以用回调函数来解决(多层继承用这种方法就不行了),用ISM模型怎么办(说白了就是先定义好继承路径。用矩阵存各个对象的关系表,当需要时可以从关系表中找出所需要的继承关系路径,接下来的事情就好办了。当然这和标准的继承教义不一样)
回调函数的模型,可以参考如下链接
给VB/VBA加密的一种方法
http://club.excelhome.net/thread-1142863-1-1.html
这个链接对于解决用一种算法,求解多个曲线十分适用。这些个曲线方程中还套着函数。虽然这种计算不用类模块也行,但是有二三十条曲线,写起代码十分麻烦

TA的精华主题

TA的得分主题

发表于 2016-11-30 19:54 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-12-6 15:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-10-26 10:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太精彩了,技术贴+辩论贴,值得学习。顶一下沉在1000多页太可惜了.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 16:22 , Processed in 0.044263 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表