类能改善分层,但不能保证分层1、层可以有n个类组成,但是没有类也可以创建很好的分层应用:类不是分层的必要
类能改善分层,但不能保证分层
1、层可以有n个类组成,但是没有类也可以创建很好的分层应用:类不是分层的必要条件;
2、面向类的程序可以像其他程序一样在逻辑上纠缠不清;
3、非面向类的但是良好分层的程序或许比没有分层的面向类的程序更加可维护;
4、类可以实现更精致的高级分层:类是分层的充分条件;
(引自:Tyson Gill《Visual Basic6:Error Coding and Layering》)
[解决办法]
试试什么是vb6的class吧!它是COM的class的概念,跟.net差得老远了。即使.net尚且不是很好的OOPL,从vb6出发的东西更有可能。
[解决办法]
楼主新年快乐!给你拜年啦
[解决办法]
类解决个体重用,是对象的标准件。
分层更象是零件到产品的制造组装工艺。
[解决办法]
分层只是一种工程方法,可以用新的实现来替换原有层次的实现;
有利于标准化;
利于各层次之间的逻辑复用。
[解决办法]
[解决办法] 鱼与熊掌不可兼得~只有来个符合实际需求的设计就好了
[解决办法]学习!!!!!!!!
[解决办法]有点废话的说
炒菜需放盐,一盐出百味出。 但要炒的好菜却并不是单单一个放盐能解决的事情
这是所有的人都知道的事情,不用特别去强调吧
[解决办法]我觉得 wanghui0380 说的挺有道理的。
解决问题的策略有N种,不一定面向对象,哪些更好或者更差罢了。
比如有些时候,我恨不得C#可以支持多继承……
[解决办法]顶一下 顶到底 继续努力
[解决办法]我回复一下,不用了,谢我
[解决办法]好好好好好好好好好好好好
[解决办法]分层是软件实现的一种方法,
类是面象对象编程语言的基础方式
分层离不开类
[解决办法]这个,应该是看你怎么分吧.
我一般的做法是.将类分为
一个是基础操作类.负责通用的算法,通用的数据库操作.通用的功能. 等模块.
在这个基础上,针对具体的业务逻辑,再继承基础类.业务逻回可以是一个中间件,一个服务等.
[解决办法]学习!!!!!!!!
[解决办法]看样子我是个初学者呀,还是不明白
[解决办法]想怎么用着方便,就怎么用,关键是要决解问题
[解决办法]各层次之间的逻辑复用
[解决办法]典型的用 C 語言,寫的物件導向的程式,就是 GTK
[解决办法]给楼主拜个年.很有才
[解决办法]给楼主拜个年.很有才
[解决办法][解决办法]分层 不是面向对象也可以实现啊
c照样可以分层
和类没的必要关系
[解决办法]学习学习。。。00000
------解决方案--------------------
学习学习
学习学习
[解决办法][解决办法]简单滴说,类和层只是不同级别滴抽象概念!
一般而言,先学分类,再学分层比较容易入手!
[解决办法]给楼主拜个年,很有才!
[解决办法]这个话题很好,值得讨论
[解决办法]类 就像 车床上的模具,架构 就像 工厂的某条流水线。
生产100个同属性的产品,车床上只要安装一个模具即可,当然,你也可以去制作100个一样的模具,只是效率和成本就提高很多了,这就是类的代码复用缩影...
有了类可以改善分层,但是类不需要去保证分层,类不是为了分层而生的。
[解决办法][解决办法]我个人一直坚持一个原则:封装的功能越原始越好,接口越简单越好.
我上面上将逻辑放到中间层,实质上,我只有一个项目是这样做的.
当时使用的是VB6.0,用中间件COM+处理业务逻辑,然后与一个描述的数据库联合,
进行一个动态调用,想的时候觉得这个方式非常不错.写程序时也觉得挺好.感觉是很顺利的.
但是后来,由于甲方在上线调度时,对原来的一些逻辑进行调整时,这时我感觉非常痛苦了.
痛苦的原因是由于原来的应用分的层次过多.
数据库<--->COM+(业务逻辑)<--->代理类<---->UI
当我要修改业务逻辑时,如增加一个参数或取消一个参数时,COM+要更新,所有客户端的代理类必须重新导出重新安装.描述的数据库也必须更新,UI也要更新,几乎是一条线了.在这里我就耗了大量的人力和精力.
后来,将业务逻辑封装到中间件的做法,我再也不用.
后来到了NET,中间件换成了WEBSERVICES,但是,在VB6.0时代,COM/COM+留给我的阴影是很大的.COM陷井曾让我焦头烂额.甚至我现在一看到一个DLL/OCX文件名,就想到陷井.
我现在最直接的做法,基本结构是这样:
(服务器) 数据库<--->WEBSERVICES<--->(客户端) WEBSERVICES通信类<---->业务逻辑<---->UI
由于WEBSERVICES里再也没有逻辑,它只是一些数据库操作和验证,也包括了自定义的工作流.这些东西都是不变的,是任何一个系统都一样的.与这个服务配套的通信类,也是不变的.所以,无论业务逻辑怎样更新,只要更新业务逻回层(就一个类)就可以了,然后更新UI.由于现在所有的C/S都是可以远程更新的了,所以,将逻辑封装到客户端,也觉得没有什么不好.而且,业务逻辑是动态调用的FORM,这样也有利于小组开发,每个人负责自己相关的窗体即可.
当然,更复杂的功能,我宁愿用存储过程封装到数据库去,比如说:BOM的分解等...
当然,我也只是一家之言,至于更适合哪种模式,那也要看具体的业务.例如我最后做后个项目,将某种算法(相当于一个逻辑)就以动态的方式封装在服务层,因为这是功能性的封装,是一次性的.
[解决办法]我一般就用到类的继承 与封装。。多态好像 太难。不过,那好高深。。
[解决办法]用C#是离不开类的.我只能这样说.
[解决办法]楼主新年快乐!谢谢楼主的分享!
[解决办法]新年快乐,虎年吉祥如意!
[解决办法]vb6跟.net区别很大的。
其实书的作者,都要找一些很细微的观点来证明自己,证明自己的理论和知识。
写程序用一个方法,重要的是自己熟悉,了解内幕,提高自己的工作效率等
[解决办法]学学各位的经验,但是csdn说回复太短了,只好再加半句。
[解决办法]学习学习。。。。。。up一下。。。。。。
[解决办法]但还是鄙视一下CSDN这个规则,
PS:讨论有点废话,没什么意义,任何都东西都是要和实际结合才有意义,程序也是要和实际项目结合的,
[解决办法]纯属路过,学习学习了...
[解决办法]纯属路过,学习学习了
[解决办法]up
------解决方案--------------------
岂止是废话,简直不通...
好像去对建筑师说“预制构件能改善框剪结构,但不能保证框剪结构”或去对生产流水线设计师说“工控机能改善自动化流水线,但不能保证自动化流水线”,得到的反应可想而知...当然这些话去对建筑工人或产线工人说大概会被膜拜...
这个帖推荐的理由如果不是放歌的几段话,那么推荐者居心叵测...
[解决办法]呵呵,我个人的认识是:分层的本初原因是为了克服人类头脑的局限。我们无法像上帝那样,把所有的细节一下全设计清楚,所以只好划分成若干个抽象层次。而每个层次应该尽量保证抽象一致性,因为有了一致性,就便于设计者和维护者掌控。所以一套设计是否需要分层、怎么分层、分多细,主要取决于你要解决的问题以及你的组员的平均水平。而是否用类来表达你的分层设计,则主要是实现手段上的问题了,你完全可以用面向过程的设计手段,来完成你的设计意图。所以我基本上比较同意楼主的引用。
[解决办法] 类不是面向对象的必须品吗?而分层不就是一种方式吗
[解决办法]分层在大多数情况下是好,但在某些资源性能严重受限的场合下就是悲剧了,比如C51;
[解决办法]顶,学[b][/b]
[解决办法]啟發挺大,沒以前沒想過類與分層的關系
[解决办法]类和分层都是对代码管理的一种方式,也可以说是对代码复用的管理方式。
举例来说,比如一个公司的人员组织结构,按照部门来分可以划分为行政部,人力资源部,财务部,销售部、技术部等类别;按照职务级别来分可以分为普通员工,部门经理,总经理等不同的层次。
所以,可以认为“类”是对代码的纵向划分;“层”是对代码的横向划分。
当然,类和层的关系不是单一的绝对的,可以只有层没有类,也可以只有类没有层,这都取决于你的代码规模和复用程度。如果你的代码很少而且功能简单,不会被其它地方使用到,没有任何类和层的代码也是有可能的,所以大家争论要不要类,要不要分层,是没有多大意义的,一切要看使用的具体环境。
例如现在炙手可热的“函数式编程”语言,它可以不使用类的,甚至没有类的概念,函数是这门语言世界中的一等公民。但是这些函数式语言却也能够开发出巨型复杂的系统,比如著名的细菌检测诊断专家系统,它就是用老式的LISP编写的。这样的系统,你恐怕用简单的分层概念都没法描述它。
所以我认为,手工对代码进行“类”和“分层”的划分,都是比较出几的代码管理方式;真正高级的代码管理方式,我觉得是第5代计算机语言的代码管理方式:既不是面向对象,也不面向过程,而是面向问题,代码只是用计算机描述事物规则,事实的一种工具罢了,代码之间的关系是不用你手工去梳理组织的,因为真实世界的很多事物是你用简单的分类,分层就可以表示和解决的吗?远远不是!
根据“金字塔原理”,分类和分层只是对事物的一种“演绎推理”过程,而人的思维过程还有一种重要的方式,就是“归纳推理”过程。现有的计算机还只能进行“演绎推理”,这是由“冯-诺依曼”计算机体系结构决定的,所以它现在还只能解决世界中很有限的范围内的事情。
说到这里大家明白了吧?分类和分层只是一种简单的思考问题的方法而已,而这之外,还有很多很强大的思考问题的方法,在这里争论怎样分层怎样分类还有意义吗?
所以,我的观点是,容易阅读,容易理解,容易维护,容易使用,简洁高效的代码就是好代码,不要管它有没有类,有没有分层。如果非要在这个问题上争论,那就是“刻舟求剑”了。
[解决办法]分层不分层之类的问题就和哪种语言最好之类的问题一样,真的没什么实际意义,任何理论的对错都是要结合特定的条件的,也就是要结合实际问题......所以废话了
[解决办法]