为什么Singleton被认为是反模式?

可能重复: 单身人士有什么不好? 单身devise模式:陷阱 单身反模式 我最近听说辛格尔顿是一个反模式。 我知道这与一个事实有关,使得一个类的单例就像把这个独特的实例变成一个全局variables,但是它也做了很多事情(限制这个对象的实例的数量,pipe理实例化等等)。 为什么Singleton认为是反模式? 还有什么select?

std :: vector :: resize()与std :: vector :: reserve()

在这篇文章的评论部分有一个关于使用std::vector::reserve()和std::vector::resize()的线程。 这是原始代码: void MyClass::my_method() { my_member.reserve(n_dim); for(int k = 0 ; k < n_dim ; k++ ) my_member[k] = k ; } 我相信要写vector元素,正确的做法是调用std::vector::resize() ,而不是std::vector::reserve() 。 事实上,以下testing代码在VS2010 SP1的debugging版本中“崩溃”: #include <vector> using namespace std; int main() { vector<int> v; v.reserve(10); v[5] = 2; return 0; } 我是对的,还是我错了? 和VS2010 SP1是对的,还是错了?

用bools作为整数是Pythonic吗?

False等于0 , True等于1所以可以这样做: def bool_to_str(value): """value should be a bool""" return ['No', 'Yes'][value] bool_to_str(True) 注意值是bool但用作int 。 这是Pythonic的这种使用还是应该避免?

无论上下文如何,都将SimpleXML对象强制转换为string

比方说,我有这样的XML <channel> <item> <title>This is title 1</title> </item> </channel> 下面的代码做我想要的,它输出标题作为一个string $xml = simplexml_load_string($xmlstring); echo $xml->channel->item->title; 这是我的问题。 下面的代码不会将该标题看作是该上下文中的string,所以我最终将在数组中使用SimpleXML对象而不是string。 $foo = array( $xml->channel->item->title ); 我一直在这样做 $foo = array( sprintf("%s",$xml->channel->item->title) ); 但这似乎是丑陋的。 无论上下文如何,将SimpleXML对象强制为string的最佳方式是什么?

以编程方式禁用ScrollView?

我想启用ScrollView并通过button单击来禁用它。 禁用意味着像ScrollView wasnt那里..并启用它返回ScrollView .. 我想这是因为我有一个画廊与文字图像,并在一个button上点击屏幕方向的变化,所以在景观文字变得更大..我希望滚动视图,因此图像没有伸展自我和文本变得不可读。 scrollview.Enabled=false / setVisibility(false)不做任何事情.. xml: <ScrollView android:id="@+id/QuranGalleryScrollView" android:layout_height="fill_parent" android:layout_width="fill_parent"> <Gallery android:id="@+id/Gallery" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="horizontal"></Gallery> </ScrollView> 谢谢 编辑1:我不能使用可见性(不见了),因为这也会隐藏画廊,我想要的是隐藏的滚动视图的效果..当有滚动浏览图库中的图像成为scrollabale,不适合在屏幕上,所以你有滚动来看到整个图像,我不想禁用/启用button点击..我试过这个: ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setOnTouchListener(null); ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setHorizontalScrollBarEnabled(false); ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setVerticalScrollBarEnabled(false); ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setEnabled(false); 但仍然图库中的图像滚动,不适合屏幕..这是什么解决scheme?

将原始长整型数组转换为长整型列表

这可能是一个简单的头脑问题,但我的第一个尝试令人惊讶的完全失败了。 我想采取一系列的原始长度,并把它变成一个列表,我试图这样做: long[] input = someAPI.getSomeLongs(); List<Long> inputAsList = Arrays.asList(input); //Total failure to even compile! 什么是正确的方法来做到这一点?

从Unicode格式的string中删除标点符号

我有一个从string列表中删除标点符号的函数: def strip_punctuation(input): x = 0 for word in input: input[x] = re.sub(r'[^A-Za-z0-9 ]', "", input[x]) x += 1 return input 我最近修改我的脚本使用Unicodestring,所以我可以处理其他非西方字符。 这个函数在遇到这些特殊字符时会中断,并返回空的Unicodestring。 我怎样才能可靠地从Unicode格式的string中删除标点符号?

如何为Git仓库启用identstring?

如何在Git仓库中启用ident $Id$文件?

如何closureslogin表单并在不closures应用程序的情况下显示主窗体?

我在我的项目(login和主)有两种forms。 我想要的是,如果login成功,我必须显示主窗体并closureslogin窗体。 我在login表单中有这种方法,当login成功时closureslogin表单。 但主窗体不显示。 public void ShowMain() { if(auth()) // a method that returns true when the user exists. { var main = new Main(); main.Show(); this.Close(); } else { MessageBox.Show("Invalid login details."); } } 如果login过程成功,我试图隐藏login表单。 但它困扰我,因为我知道,而我的程序运行login表单还在那里,应该closures吧? 什么应该是正确的方法呢? 谢谢…

在Java中评估mathexpression式的方法

例如,在我的一个项目中,我想添加一个用户可以在公式中提供的function sin (x + pi)/2 + 1 我在我的Java应用程序中使用 /** * The formula provided by the user */ private String formula; // = "sin (x + pi)/2 + 1" /* * Evaluates the formula and computes the result by using the * given value for x */ public double calc(double x) { Formula f = new […]