程序员:“单例模式简单来说就是,每次下雨都买把伞太浪费了,不如买把伞放包里,要用就拿出来,省钱。”
妹纸:“这样做听起来真是太棒了,那为什么不把所有的东西都做成这样呢?”
程序员:“因为这样做也有它的缺陷,比如说妹纸和男朋友一起出门上班,下雨了只有一把伞就不够用道上的黑话叫做共享资源争用,或者线程冲突。”
程序员:“因为伞这种东西是不能两个人共用的(黑话叫线程不安全对象),所以家里只有一把伞就不够了。但是如果是像空调这样大家可以一起用的东西(黑话叫线程安全对象),就可以只买一个,全家人一起用(道上的黑话叫做享元模式)。”
妹纸:“那就让男朋友自己再去买把伞么”
程序员:“这样当然也可以(黑话叫做私有对象),但是要是男朋友搞丢了,伞也一起搞丢了,而且男人嫌麻烦,不喜欢每天揣把伞,图方便干脆要用的时候自己买伞了,还是很浪费。”
妹纸:“这个简单,那就多买几把伞放家里,谁需要就拿去用好了。”
程序员:“妹纸你真是太厉害了。这就是牛叉闪闪的对象池模式啊。只有高级程序员才会鼓捣个什么池出来(线程池、连接池),妹纸悟性这么高,要不加入编程这个很有前途的职业吧。。” |