在OO范例中,我们选择使用类,因为它们有助于我们打破系统,并提供良好的附带好处,如封装,职责分离,继承,模块化等.
如果我们在组件级别查看软件系统,我们是否可以简单地以相同的概念方式处理组件,即组件只是一个"大类"?或者还有更多呢?
在设计组件时必须考虑哪些额外的因素?
编辑:
我知道一个类和一个组件是不同的东西.我也理解一个组件可能包含许多类,每个类都有自己的角色和职责.
我会看看能否更好地解释自己.
这似乎与组件设计非常相似,只是在更高的抽象层次上.用于确定需要哪些类的技术可以扩展到组件,还是有其他影响高级系统设计但不适用于类抽象级别的方法?
这就是我在我所谓的稳定分支上所做的事情......
% git rebase master
First, rewinding head to replay your work on top of it...
Fast-forwarded alpha-0.3.0 to master.
% git status
# On branch alpha-0.3.0
# Your branch is ahead of 'origin/alpha-0.3.0' by 53 commits.
#
nothing to commit (working directory clean)
% git push
Fetching remote heads...
refs/
refs/heads/
refs/tags/
refs/remotes/
'refs/heads/master': up-to-date
updating 'refs/heads/alpha-0.3.0'
from cc4b63bebb6e6dd04407f8788938244b78c50285
to 83c9191dea88d146400853af5eb7555f252001b0
done
'refs/heads/unstable': up-to-date
Updating remote server info
Run Code Online (Sandbox Code Playgroud)
这是我后来意识到的一个错误.我想撤消整个过程,并将alpha-0.3.0分支恢复到原来的状态.
我该怎么办?
我想POST多部分/表格数据编码数据.我找到了一个外部模块来执行它:http://atlee.ca/software/poster/index.html 但是我宁愿避免这种依赖.有没有办法使用标准库?
谢谢
我已经重新设计了一个网站,现在它是xhtml有效等,并使用UTF8.一切都很好,但如果数据库中的任何地方都是欧元字符,它只会显示为问号.
解决这个问题的正确方法是什么?由于输出由Typo3完成,我无法改变这一点.
我收到一条消息"无法从您的PATH环境变量中找到Java虚拟机.您必须在运行此程序之前安装VM." 有谁知道如何正确设置它?谢谢!
在Windows XP中,只要右键单击以选择特定DLL的属性,就可以访问"版本"选项卡.
在Windows Vista中,有一个Details表,它有一些(但不是全部)Version选项卡中常用的可显示项.特别是,缺少大会版本.
这对我来说是一个令人头疼的问题,因为我有许多具有相同文件版本但不同程序集版本的DLL.现在,我无法区分它们之间的区别.
有什么方法可以在Vista中查看汇编版本吗?
PS这是我的一个部署问题,因为DLL之间的差异是程序集版本,我可以在Windows XP中查看,但在Windows Vista中不能查看.所以,我无法判断我们是否部署了正确的DLL,因为我无法在Windows Vista机器中查看它.
让我们说Python安装在该位置__CODE__.
我想在程序的输出中打印此位置.请告诉我这是做什么的功能.
可能重复:
C#静态构造函数线程是否安全?
Jon Skeet在http://csharpindepth.com/Articles/General/Singleton.aspx上的精彩文章以及我读过的其他文章清楚地表明,双重检查锁定在C#和Java中都不起作用,除非有明确标记实例为"易变".如果不这样做,则将其与null进行比较的检查可能会返回false,即使实例构造函数尚未完成运行.在Skeet先生的第三个样本中,他清楚地说明了这一点:"Java内存模型不能确保构造函数在将新对象的引用分配给实例之前完成.Java内存模型经历了1.5版的重新修改,但是在没有volatile变量的情况下,-check锁定仍然被破坏(如在C#中)
但是,大多数人都同意(包括Skeet先生,他的文章中的第4和第5个样本),使用静态初始化是获取线程安全单例实例的简单方法.他声称"C#中的静态构造函数被指定仅在创建类的实例或引用静态成员时执行,并且每个AppDomain只执行一次."
这是有道理的,但似乎缺少的是保证仅在构造函数完成后才分配对新对象的引用 - 否则我们会遇到使得双重检查锁定失败的同类问题,除非您标记实例像挥发性的.是否有保证,当使用静态初始化来调用实例构造函数(而不是从属性的get {}调用实例构造函数时,就像我们使用双重检查锁定一样),构造函数将在任何其他线程之前完全完成可以获得对象的引用?
谢谢!
我有一个带书籍的数据库.
一本书有一个作者,出版商.一些价格,ID和描述.
我想跟踪对一个产品所做的更改.一种方法是将产品保存为时间和ID作为主键.
还有其他方法吗?
是否有自动跟踪变化的数据库系统(我只使用过mysql)?
问候...
我必须创建一个循环来生成一个5个随机选择的字母字符串,然后在该名称下创建一个文本文件,比方说在C://中,我该怎么做?生成名称和在目录中创建文件.我想我必须从ascii代码中选择5个随机数,将它们添加到数组中,然后将它们转换为等价字符,以便能够将其用作名称.我会如何将它们转换为角色并与它们组成一个字符串,你能帮助我吗?
c# ×2
mysql ×2
python ×2
architecture ×1
ascii ×1
constructor ×1
dll ×1
encoding ×1
git ×1
git-push ×1
java ×1
linux ×1
multipart ×1
oop ×1
path ×1
php ×1
post ×1
random ×1
singleton ×1
terminology ×1
text-files ×1
urllib ×1
utf-8 ×1
versioning ×1
xhtml ×1