请教一下设计方面的问题?

qingYun1029 2012-07-23 07:04:27
加精
上个星期自己看了一下设计模式,真是受益匪浅呀,觉得面向对象的设计最大的好处并不是什么“可复用”性(可能自己还没到那个层次),感觉它的最大好处还是软件设计脉络清晰,随之而来的自然是好维护喽,还有就是扩展性也会有很好的体现。。。

自己尝试着写了一个简单的demo,需求也很简单,就是分析一下数据,每条数据都有对应的状态,然后不同状态的业务规则基本都有一些不同。。。

因为考虑到这个功能的主要变化对象是状态,所以我将所有状态提取出来,写成相应的类,然后“套用”简单工厂设计模式(其实方法工厂也差不多,因为只是一个demo,所以以方便为主),感觉设计开始还是蛮轻松的,可是随着业务融入代码感觉越来越复杂了。。。

这儿想请教一下,都说设计与表现无关,但是到具体开发中还是有一些困惑的,例如:在上面的例子中有一宗状态需要通过查询数据库来判断,那么这块代码该写在哪儿好呢?如果直接写在某一状态类里面,那么这份代码的可复用性根本就没有了吧?

可能没怎么描述清楚,希望大牛们帮帮忙,不懂请留言!

好了,该上班去了!

加油!
...全文
10115 149 打赏 收藏 转发到动态 举报
写回复
用AI写文章
149 条回复
切换为时间正序
请发表友善的回复…
发表回复
alps88112919 2013-11-05
  • 打赏
  • 举报
回复
你的关注点不对。。。首先关注点是你要处理的业务的抽象剥离,只有适合业务的模式,没有适合模式的业务。。如果模式真的是圣经,重构就无从谈起了。。。
johooLee 2013-10-31
  • 打赏
  • 举报
回复
每次看到caozhy 回答别人的问题,都是答非所问。 说的很多,一味的展示自己的才能。 我倒是想看看,你现实是怎样的。 技术总监?
llsshh1985 2013-04-16
  • 打赏
  • 举报
回复
看回答真长知识,mark下,以后再看
chanhit 2013-03-11
  • 打赏
  • 举报
回复
其实在第一次实现的过程中就很有可能会回过头来重构前面的代码的, 另外维护过程中增加新需求或者修改bug的工作量也可以把重构考虑进去 至于其他人不愿做,就需要树典型来带动了
  • 打赏
  • 举报
回复
根据状态来进行code的也是有对应的设计模式的哇 状态模式
Kilin_Zhang 2013-02-17
  • 打赏
  • 举报
回复
设计模式就想练武功,最高境界是无招胜有招
  • 打赏
  • 举报
回复
问题没有描述清楚。 ======================================================= .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速开发、整合框架,给用户和开发者最佳的.Net框架部署方案。 平台博客:[CNBLOGS]http://www.cnblogs.com/huyong [CSDN]http://blog.csdn.net/chinahuyong 交流QQ:406590790 (请注明:CSDN) 平台微博:http://t.qq.com/yonghu86 邮件交流:406590790@qq.com
qq370202296 2013-01-18
  • 打赏
  • 举报
回复
大话设计模式
qingYun1029 2013-01-18
  • 打赏
  • 举报
回复
谢谢各位了。。。
xiaofan_sap 2013-01-05
  • 打赏
  • 举报
回复

在上面的例子中有一宗状态需要通过查询数据库来判断
这个是 你业务的 变化点,是设计模式第一原则--封装变化要求滴哦。 你把他专门拿出来,可以使用 简单工厂设计习惯 来 专门生成 状态嘛。 然后 在利用 状态模式 生成你的业务代码嘛
nickppa 2013-01-04
  • 打赏
  • 举报
回复
很多地方都会在不知不觉中用到设计模式,只是有些人用了却不知道自己已经用了设计模式。这种东西怎么说呢,是种思想,不能说是拿设计模式去硬套吧,你完全可以用这种思想去帮助你实现某种目标。 抓住本质的东西,设计模式是为了实现面向对象的单一职责、开放封闭、里氏替换、依赖倒置等等的原则,但是不可能所有的模式都是完美的,都能够遵循这些个原则,需要在实际中权衡变通。 不要一开始就给自己画了个圈,把自己关在里面,一小步一小步的来,以能实现客户的需求为主,如果客户提出变更,就要看看是不是自己的程序设计能够有所变化来适应客户的这种要求,并且预防客户以后提出相似的需求时,不对自己现有的程序再次进行编译就能满足客户的需求,一点一点来。不要想套几个模式一下就把项目给规划好了。 设计模式是基础,得看,得记牢,试着去套套看,试着去变通它,慢慢来,不着急的。 路还很长,还需要不断的学习总结。 写给你也写给我自己,大家互勉
qingYun1029 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 161 楼 的回复:]

我来说几句模式设计的问题。
我是做通信软件,通用软件, 那个23个模式设计, 由于工作中根本用不到, 看了又忘记(知识不是越多越好啊) 基本只能记得住Factory和Singleton. 我到是和经常使用模式设计的程序员聊过天。 首先他们是做的MIS系统的, 界面+数据库。 我最关心的是为什么用这个模式设计.
------ 设计之初的不确定性! 和其他程序员接口的不确定性,和客户需求可能变化……
[/Quote]

设计模式可以看做是OOP基础的总结、体现,我看设计模式主要是为了更加了解OOP。
jackson_b_001 2012-08-14
  • 打赏
  • 举报
回复
我来说几句模式设计的问题。
我是做通信软件,通用软件, 那个23个模式设计, 由于工作中根本用不到, 看了又忘记(知识不是越多越好啊) 基本只能记得住Factory和Singleton. 我到是和经常使用模式设计的程序员聊过天。 首先他们是做的MIS系统的, 界面+数据库。 我最关心的是为什么用这个模式设计.
------ 设计之初的不确定性! 和其他程序员接口的不确定性,和客户需求可能变化的不确定。所以用模式设计绕了弯路来做。
反过来说, 如果需求一开始就是明确的, 你还用模式设计吗?
对付设计之初的不确定性, 软件工程中解决方案有很多。
zhozhoyu 2012-08-14
  • 打赏
  • 举报
回复
哎,现在正在看设计模式,项目中怎么用都不知道》》》》》》》
qingYun1029 2012-08-13
  • 打赏
  • 举报
回复
[Quote=引用 157 楼 的回复:]

很不同意大神的观点啊,语言支持了部分设计模式了我们就不需要去知道了,不需要去用了吗?C#支持了,还有JAVA呢,JAVA支持了还有其他语言呢。一个优秀的程序员掌握了几门语言不稀奇吧,总有语言不支持了。而且做一行精一行,这个语言实现了,就不要去了解他是怎么实现的,原理是什么吗,到其他语言上要怎么复制这种呢。JAVA的源码里面用到了不少设计模式,如果不懂得这些模式,看这些源码也完全没问题,但是懂得了……
[/Quote]

我觉得蛮好的,可能是大牛们不希望小鸟们做歪路吧,只是学习走走歪路未必不是好事,有比较就更理解更透彻了。。。
fantisGod 2012-08-13
  • 打赏
  • 举报
回复
所谓模式是前人总结的经验,让你的代码有层次,方便管理和维护。某种模式在语言定义上是死的,但是程序员是活的,思维也是活的,随着要求改变模式,根据原来的模式拓展模式,自己发掘符合自己项目的模式。
iamxi 2012-08-11
  • 打赏
  • 举报
回复
很不同意大神的观点啊,语言支持了部分设计模式了我们就不需要去知道了,不需要去用了吗?C#支持了,还有JAVA呢,JAVA支持了还有其他语言呢。一个优秀的程序员掌握了几门语言不稀奇吧,总有语言不支持了。而且做一行精一行,这个语言实现了,就不要去了解他是怎么实现的,原理是什么吗,到其他语言上要怎么复制这种呢。JAVA的源码里面用到了不少设计模式,如果不懂得这些模式,看这些源码也完全没问题,但是懂得了这些设计模式,能让我们更深入的理解。

个人认为设计模式应该是程序员在其代码中使用,很多模式都不需要结构师插手。

很多设计模式介绍的书上都提到,不要为用模式而去用模式。不要用死背书的观点去说那些初学设计模式的人,当他们深入理解之后自然会知道这些道理。

说下自己的观点,也许我理解的还不够深入,望多指教了。
LAONINGA098 2012-08-11
  • 打赏
  • 举报
回复
谢啦!!!
pubuntu 2012-08-10
  • 打赏
  • 举报
回复
very good .it's very for me!
leijmdas 2012-08-09
  • 打赏
  • 举报
回复
[Quote=引用 148 楼 的回复:]
引用 147 楼 的回复:

你要探究和困惑的,不在于设计模式,而在于领域模型设计,不多说,推荐

《领域驱动设计.软件核心复杂性应对之道》

《企业应用架构模式》

http://www.jdon.com/ddd.html


谢谢啦!!!
[/Quote]

是的,不过都需要
需求与设计

还有测试。
加载更多回复(129)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧