[
登录
|
注册
]
反馈问题或提出建议
。
社区首页
小 组
博 问
闪 存
我的空间
我的好友
网站首页
设计模式
/
单态模式和静态类有什么区别?
浏览:772
2008-01-08 18:54
来自
斧头帮少帮主
:
除了创建实例的时间不一样外还有哪些不同?
一直找不到相关达人的详解.望赐教!
楼主
4个月前
BirdsHover
:
在C#里单件模式还是要靠静态变量和静态方法支持才能实现的。主要区别在于静态变量编译时就生成了,而单件要运行时创建(个人理解)。而静态变量非自维护的,而单件只能由自身创建。
回复
1楼
4个月前
麒麟.NET
:
静态类是不能实例化的,而单件模式是可以实例化的,并且只允许进行一次实例化。
回复
2楼
4个月前
斧头帮少帮主
:
顶上去,
如果你有两位说的这点区别,感觉单态模式存在就没什么必要了,毕竟对于2G的内存,在编译和运行时创建没有什么区别.
回复
3楼
4个月前
金色海洋(jyk)
:
看看head first 里的说明应该就可以明白一些吧,我现在也没有太懂。
1、静态类更像是一些函数的集合;而 单态模式 是有机的集合,就是说结合得更密切吧。
2、静态类 只能实例化一次,而且无论如何也只能实例化一次,且不用操心;
而单态模式就要手动作限制了,弄不好就有可能会实例化多次。
光看概念也不会有太深的理解吧,等到实际中能够应用到了就会理解了。我现在也还没有用到。
只是用到了策略和模版。
回复
4楼
4个月前
Colin Han
:
设计模式仅仅是一种思想。静态类可以作为单件模式的一种实现方式。两者并没有可比性。
回复
5楼
4个月前
Colin Han
:
如果你需要,可以在你的系统中包含一个容器,单体都从这个容器中取得。这也可以说是一种单体模式的实现方式。而这种实现方式并不需要依赖静态字段或静态方法。
回复
6楼
4个月前
deerchao
:
Singleton实例可以实现接口,静态类不可以.
回复
7楼
4个月前
横刀天笑
:
麒麟.NET 说的很明白了,静态类不能实例化,那么也就根本不存在静态类的实例,那么在一些需要类的实例的地方(比如方法参数的传递),静态类就无能为力。单件(我习惯这么叫),是有实例的,它不是静态的。至于到底怎么个差别细细体会吧
回复
8楼
4个月前
斧头帮少帮主
:
@Colin Han
静态类可以作为单件模式的一种实现方式。
我比较同意这个观点.
回复
9楼
2个月前
iamarabbit
:
我觉得单件和静态类成员在进行面向对象思考时是有区别的。
静态成员更多上是代表实例无关的数据或操作。比方说
class Human
{
public Human FirstHuman;
public History GetHumanHistory();
public Type GetType();
}
单件是为了实现“该对象在程序中只有一个实例”,比如下面的例子
class MainBoard
{
public static int UpdateNums; // 主板升级次数,静态成员
public static MainBoard Current; // 当前机器上的主板
public string Company; // 实例成员,一个主板的生产厂商
}
个人理解,仅供参考,嘿嘿
回复
10楼
你还不是小组成员,
加入小组
以后才能发布新主题!
有不合适内容,建议去除
>
返回“设计模式”
其他话题
有C#好的书籍吗?
(weblogical)
设计模式 成立了!以后研究出来的成果就发布到这里了,努力!
(彭成刚)
.Net设计模式中的两项技术
(笔笔VS小武)
门户网站架构设计
(mikel)
[讨论]一起聊聊——最常用的设计模式
(任力)
困惑
(weblogical)
凝聚:探讨经典和常用的 实体类 [难道你还不知道么?]
(彭成刚)
.net下的网站和Webservice如何使用反射技术?
(迷路中的路人甲)
C# 实现接口简易反射。。Web.Net 设计模式
(彭成刚)
大家帮忙看看这样的需求是否可以利用设计模式来解决?
(迷路中的路人甲)
单件模式 - 你就是我的唯一 - Web.Net 设计模式
(彭成刚)
策略模式 Web.Net版 [原理+代码] 鸭子呱呱叫
(彭成刚)
1
16728