关于面向对象的讨论专题
>
案例分析:面向对象得失论 (
双鱼座, 2007-11-04 16:22, 阅读:5534, 评论:32)
>
为什么无法面向对象 (
RicCC, 2007-11-03 23:59, 阅读:3949, 评论:11)
>
外国人眼中的面向对象 (
Nathan2008, 2007-11-03 20:28, 阅读:2429, 评论:13)
>
原来,面向对象和数据库是“冤家” (
Nathan2008, 2007-11-03 13:11, 阅读:2428, 评论:17)
>
是什么限制了我们面向对象(的开发) (
lovecherry, 2007-11-02 18:19, 阅读:4661, 评论:60)
>
分层模式下的Lazy Load ——探索Domain Model系列(下) (
1-2-3, 2007-10-30 09:28, 阅读:4406, 评论:49)
>
MapperRegistry 是工厂方法的变形? ——探索Domain Model系列(上) (
1-2-3, 2007-10-15 08:54, 阅读:3583, 评论:78)
>
随笔:杂念纷呈 (
寒枫天上, 2007-09-28 12:36, 阅读:3353, 评论:10)
>
别在领域模型迷失了自己 (
小生, 2007-09-28 10:23, 阅读:4476, 评论:24)
>
重构图书馆惊魂夜(理解模型,关注设计) (
亚历山大同志, 2007-09-28 00:22, 阅读:2826, 评论:25)
>
对最近讨论的看法 (
RicCC, 2007-09-26 23:50, 阅读:2194, 评论:42)
>
没有银弹,但可以"扯蛋" (
daizhj, 2007-09-26 10:45, 阅读:2316, 评论:57)
>
图书馆惊魂记之一(一个简单的领域模型的建立过程) (
亚历山大同志, 2007-09-26 00:23, 阅读:2105, 评论:26)
>
领域模型﹐打开OO的另一扇窗 (
小生, 2007-09-25 16:44, 阅读:4140, 评论:37)
>
为什么把持久化放到Domain Object是不OO的. (
Klesh Wong, 2007-09-24 17:07, 阅读:1571, 评论:53)
>
贫血或职责的讨论 (
怪怪, 2007-09-24 08:14, 阅读:232, 评论:0)
>
怪怪设计论闲谈篇:职责与解耦的矛盾 (
怪怪, 2007-09-23 11:27, 阅读:3830, 评论:29)
>
关于OO的后现代争论几时休 (
戏水, 2007-09-23 10:40, 阅读:1900, 评论:24)
>
开一个讨论,说说我封装的看法【初学者谨慎观看,未成年人请在家长监督下观看:)】 (
亚历山大同志, 2007-09-23 01:41, 阅读:4667, 评论:11)
>
噢,这就是封装啊?! (
Klesh Wong, 2007-09-22 10:12, 阅读:2236, 评论:46)
>
又见手把手系列-面向对象扫盲-通俗的OO第一弹-【封装】 (
亚历山大同志, 2007-09-21 16:19, 阅读:4997, 评论:57)
>
煽风点火:也论Bjarne Stroustrup的"基于对象"的含义, 同时B4一下大师 (
怪怪, 2007-09-21 15:04, 阅读:1766, 评论:39)
>
也乱弹Book.Save而引OO对话 (
Kingthy, 2007-09-21 11:04, 阅读:2213, 评论:17)
>
我对oo的看法(对最近关于oo的认识) (
黄金年代, 2007-09-20 10:14, 阅读:2489, 评论:13)
>
其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码) (
金色海洋(jyk), 2007-09-19 22:07, 阅读:2670, 评论:21)
>
软件设计基本原则 (
deerchao, 2007-09-19 18:17, 阅读:3332, 评论:135)
>
谈谈book.Save()到底OO还是不够OO (
亚历山大同志, 2007-09-19 18:07, 阅读:3078, 评论:41)
>
一个必须使用面向对象才能写出来的超简单的程序。为亚历山大助威 (
徐少侠, 2007-09-19 17:28, 阅读:2965, 评论:35)
>
捅破窗户纸:如何从过程到对象—For金色的海洋以及所有为面向对象而困惑的Tx (
亚历山大同志, 2007-09-19 15:50, 阅读:4447, 评论:39)
>
其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感 (
金色海洋(jyk), 2007-09-18 21:36, 阅读:3552, 评论:55)
>
怪怪设计论: 抽象无处不在 (
怪怪, 2007-09-17 01:30, 阅读:5578, 评论:53)
>
返回专题首页
阅读排行
· 怪怪设计论: 抽象无处不在 (5578)
· 案例分析:面向对象得失论 (5534)
· 又见手把手系列-面向对象扫盲-通俗的OO第一弹-【封装】 (4997)
· 开一个讨论,说说我封装的看法【初学者谨慎观看,未成年人请在家长监督下观看:)】 (4667)
· 是什么限制了我们面向对象(的开发) (4661)
· 别在领域模型迷失了自己 (4476)
· 捅破窗户纸:如何从过程到对象—For金色的海洋以及所有为面向对象而困惑的Tx (4447)
· 分层模式下的Lazy Load ——探索Domain Model系列(下) (4406)
· 领域模型﹐打开OO的另一扇窗 (4140)
· 为什么无法面向对象 (3949)
· 怪怪设计论闲谈篇:职责与解耦的矛盾 (3830)
· MapperRegistry 是工厂方法的变形? ——探索Domain Model系列(上) (3583)
· 其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感 (3552)
· 随笔:杂念纷呈 (3353)
· 软件设计基本原则 (3332)
· 谈谈book.Save()到底OO还是不够OO (3078)
· 一个必须使用面向对象才能写出来的超简单的程序。为亚历山大助威 (2965)
· 重构图书馆惊魂夜(理解模型,关注设计) (2826)
· 其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码) (2670)
· 我对oo的看法(对最近关于oo的认识) (2489)
最新评论
>
re: 怪怪设计论: 抽象无处不在
@mikelij
呃...,其实我这篇文章正是破除方法论迷信用的呀..., 看来是太罗嗦了..
技巧性的文章和入门基础知识, 不是我不愿意写, 是我太菜, 写不出来呀...
我虽然和你大体意见相仿, 不过呢, 务虚也不是全然无用, 至少现阶段人类的任何成果, 中间都离不开务虚这一步。
另外, 除非按照某些人在某领域内重新将他们定义之后的理解,否则抽象和方法论根本是两个概念,更不能说抽象是一种方法论了。
比如我这篇文章, 实际上是在说,不是某一种方法论的执行结果才是抽象; 当你随便打下一行代码,就是在抽象了了; 区别仅仅是有意识的还是无意识的, 好、还是不好罢了。
- 怪怪 2008-07-13 23:33
>
re: 怪怪设计论: 抽象无处不在
以前没有看过怪怪的长篇大论。现在总算领教了。真是务虚的很。呵呵! 要我说就两句话:抽象是找出事物的共性, 同时也反衬出特性。 一种方法论而已。还是务实的好,建议怪怪多写点技巧性的文章或者入门基础知识的文章。
- mikelij 2008-07-13 22:31
>
re: 分层模式下的Lazy Load ——探索Domain Model系列(下)
其实粗略看完了,其实没看懂啥。呵呵。
- Solog 2008-05-27 13:47
>
re: MapperRegistry 是工厂方法的变形? ——探索Domain Model系列(上)
MapperRegistry 是简单工厂不是工厂方法的变形
工厂方法其实是简单工厂的加强版
抽象工厂又是工厂方法的加强版
一次比一次复杂,解决的问题也更大更好
lz说到后面变成简单工厂了,简单工厂可是违背了开放封闭原则啊,所以一般简单工厂要配合反射技术使用呵呵
- 私家侦探 2008-05-26 16:35
>
re: 怪怪设计论: 抽象无处不在
拜读恨晚!
- alisx 2008-05-09 18:39
>
re: 是什么限制了我们面向对象(的开发)
楼主有空能不能讲解下ado net entity framework和富领域模型啊,谢谢
- blue_paladin 2008-04-28 12:49
>
re: 为什么把持久化放到Domain Object是不OO的.
--引用--------------------------------------------------
徐少侠: --引用--------------------------------------------------
金色海洋(jyk): 怎么没有人评论呢?
看来我一直都只在“以数据库为中心”呀,怪不得我总觉得实体类没有太大的用处呢,原来是这样呀。
--------------------------------------------------------
你老这么幸灾乐祸哦?
没吃过不OO的亏是啊?
因为业务变化,只要在修改自己的代码的时候,出现修改了2个及以上的地方
且这些修改,或者说这些地方的代码是完全一样的或者非常类似的.
那么你在这个地方已经吃了亏了
相同及类似代码在越多地方被重复编写,那么在未来的更改时OO的优势体现越大.
反之,你如果能使得整个项目里没有重复功能的代码,那么的确是不需要OO的.
因为OO带来的一个副作用就是首次编写时会降低开发效率以及编码复杂性(指难以让人理解)
--------------------------------------------------------
你说的这个"亏",我只吃了一会,以后再也不想吃了,所以呢,我现在的项目里“重复”的代码是很少的,复杂度不高的可以说是没有了。
最近正在整理项目,也许过几天可以发一下吧,到时候你就会知道了,我说的没有重复的代码是什么样子了,呵呵。
- 金色海洋(jyk) 2008-04-10 21:07
>
re: 案例分析:面向对象得失论
http://www.cnblogs.com/coderlee/archive/2008/02/11/1066915.html
我写了一篇对多态和范型的感悟 可以来看看。。
- coderlee 2008-02-11 15:24
>
re: 为什么无法面向对象
开心就好
- 古典小说 2008-01-30 01:26
>
re: 分层模式下的Lazy Load ——探索Domain Model系列(下)
长见识了,还需要多学习一下阿
- 长见识了,还需要多学习一下阿 2008-01-30 01:23
>
re: MapperRegistry 是工厂方法的变形? ——探索Domain Model系列(上)
学习了。
- dyh 2008-01-23 15:04
>
re: 分层模式下的Lazy Load ——探索Domain Model系列(下)
很不错!谢谢楼主!不过我觉得楼主好像把DomainObject和DataMapper的上下弄错了。DomainObject应该是上层,DataMapper是下层。分离接口是为了把DomainObject对DataMapper的强依赖转变成弱的依赖。本来是domainobject依赖datamapper分离出接口就变成两者都依赖与抽象的接口。这是依赖倒置。因为抽象是上层!
- xhan 2008-01-18 16:37
>
re: 其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感
1、在我看来 表名和字段名 本身就是业务逻辑的体现。
如果不使用表明和字段名的话,那么也要使用实体类(的名称)和实体类的属性,而大多数的做法都是有一个表就对应一个实体类(或者反过来说,有一个实体类就对应一个表),实体类的属性和字段也基本上是一一对应的。
这么来看,表名和字段名 VS 实体类名和实体类的属性,也就没有太大的区别了。
(当然我知道,在编译的时候表名、字段名写错了是不会出现提示的。)
2、出现了表名和字段名确实不便于修改,这确实是一个问题,但是我们可以想一个补救的措施,而不是全盘否定。
补救的措施就是把表明和字段名放在另一个地方。比如单独的.cs文件,或者配置文件(不是web.config,而是xml或者数据库)
解决方案有很多,目的就是
1、减少代码量;
2、便于修改
3、编译的时候能够发现表名、字段名是否合适据库里的一致。
- 金色海洋(jyk) 2008-01-01 10:16
>
re: 其实添加数据也可以这样简单——表单的第一步抽象(针对数据访问层)《怪怪设计论: 抽象无处不在 》有感
虽然逻辑层里没有出现SQL语句,但是依然出现了表名和字段名。
真正的邏輯層應該不會出現"表名和字段名"吧.
- 清風客 2007-12-31 17:13
>
re: 其实添加数据也可以这样简单——表单的第三步抽象(针对UI及后置代码)
看的不是很仔细,你可以看一下subsonic的脚手架功能
- lexus 2007-12-30 23:45
>
re: MapperRegistry 是工厂方法的变形? ——探索Domain Model系列(上)
@ifire
非常感谢您的回复。
www.infoq.com/cn/上的那篇文章是不是这篇
http://www.infoq.com/cn/articles/fine-grained-singleton-pattern?
它的方法是使用如下的代码来判断是否是Web程序:
/// 判断当前应用是否为Web 应用的Helper 方法(非官方方法)
private static bool CheckWhetherIsWeb()
{
bool result = false;
AppDomain domain = AppDomain.CurrentDomain;
try
{
if (domain.ShadowCopyFiles)
result = (HttpContext.Current.GetType() != null);
}
catch (System.Exception){}
return result;
}
- 1-2-3 2007-12-29 16:07
>
re: MapperRegistry 是工厂方法的变形? ——探索Domain Model系列(上)
--引用--------------------------------------------------
1-2-3: @caidehui
使用配置文件应该是一个不错的方法。
> 还有一个问题就是MapperRegistry在Web应用中使用时应该如何放置的问题,既然要使用缓存、那么就可以放到Session的缓存中。
单件类的实现方法一直在困扰着我。因为在Web程序中,单件类的实例应该保存在Session中;而在WinForm程序中,只要放在一个static field中即可。我一直没有找到一个统一的实现方法。难道要为Web程序和Win程序分别实现两个MapperRegistry?
--------------------------------------------------------
配置文件有什么好的?在配置文件中定义和代码中定义有什么本质的区别么?
www.infoq.com/cn/上有一个Singleton的web/win 统一实现可以参考
btw:文章写的不错(我是写不出来的),domain model的实现有很多细节问题需要探究,期待后续文章能有所体现,呵呵
- ifire 2007-12-29 15:48
>
re: 是什么限制了我们面向对象(的开发)
对于项目, 使用最简单的技术是明智的, 而对于产品,则需要考虑更多的可变化性, 所以应该采用合理的设计
- 李华星 2007-12-23 14:42
>
re: 外国人眼中的面向对象
今天早上明白了很对面向对象的问题。
不过 老马是谁?
- 烟头上的探戈 2007-12-23 11:33
>
re: 外国人眼中的面向对象
今天早上突然明白了很对面向对象的问题。
- 烟头上的探戈 2007-12-23 11:32