发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA
1 2 下一页 Go 2

.net设计模式的纠结,彭大大出来解救。

              
2010-01-26 18:04
赞助商链接

现在公司要开发一个web系统,各种原因确定了要用C# .net来开发。
早就厌烦了.net基于控件、数据库的设计方式,以后该需求恐怕系统要重做。
这次想说运用OO设计思想,尽量解耦合。但是OO思想在.net中实现起来太纠结。
例如设计这么一个类:

// 文章分类
class Catalog{

}

//新闻文章
class News{
private Catalog catalog;
private String name;
}


News中的catalog我们都知道在Hibernate数据空中实际就是个int字段,记录catalog的id。
但是在.net里面没有什么好的数据映射方案(NHinbernate需要下属重新学习,下属没有这方面经验)。
本来想手工实现对象到数据的存储,类似上面这种设计,手工实现不又回到了基于数据库编程了么。
太纠结了。
谁能帮忙想想办法。

1
2010-01-27 09:37

问题不大,将What做什么和How怎么做进行清晰分离分层就可以,数据库属于How范畴,你能做到和领域模型相对解耦就可以了。

2010-01-27 17:10

我看到有2种设计:

第一种:

// 文章分类
class Catalog{
private int catalogID;
}

//新闻文章
class News{
private Catalog catalog;
private String name;
}
---------------------------------------------------------

第二种:

// 文章分类
class Catalog{
private int catalogID;
}

//新闻文章
class News{
private int catalogID;
private String name;
}
-----------------------------------------------------------

新闻News类中,private Catalog catalog; 还是 private int catalogID; 能解释一下吗?

2010-01-28 10:02

第一种是标准的对象设计,对象通过引用另外一个对象来表达这两个对象之间的关联关系。这和UML图示关联是一一对应的。

第二种是数据库做法,写这种代码的人一般都是没有对象思想,是将类看成是数据表数据的映射产物,以数据表结构来看待类。

类和数据表到底以谁为主,这两种写法就无意暴露了程序员的设计思路。

2010-01-28 12:37

这下茶几了。
我在PowerDesigner15中用了OOM建模,想直接生成数据表。结果PowerDesigner不支持第一种标准的面向对象设计。

Rational Rose中这样设计,也只能建模,不可以由模型O-R到数据库。

除了NHinbernate以外,还有什么方法可以让我使用第一种面向对象的设计,并且能够从模型生成到数据表。

不想用NHinbernate因为其O-R过程需要用户手工先建表,太受不了。

感觉全中国只有jdon这里在坚持面向对象,其他地方还在面向数据。会不会是我们错了。
[该贴被goddie于2010-01-28 12:47修改过]

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com