不要滥用单例模式

      单例模式,就是一个类只有一个实例。一开始接触这种设计模式时,我非常兴奋,在系统范围内,一个类只有一个对象,对象的唯一性可以解决计数器问题,比如扫雷游戏的剩余雷数计数;还可以解决计时器问题,比如扫雷游戏里的时间计时。另外,它还可以解决配置文件管理问题,比如管理扫雷游戏等级、雷数配置。单例模式的好处和使用范围非常广,但是,我必须告诉你,不要滥用单例模式。

      单例模式有一个严重问题,就是扩展性很差,我见很多博文都没有说到这点。就拿扫雷游戏来说吧,如果你把扫雷的剩余雷数计数用作单例,并且你已经在系统范围内多处使用到这个类了,有一天,你老板说,再搞个计数器,把玩家左右键点击次数也记一下,你可能会想,好的,再往计数器里面增加个左右键计数的属性。如果这样想,就会出现一个大问题,你的计数器移植性大大降低了,因为你这个类已经业务化了,当移植到别的程序时,别的程序并不需要你这些业务。你或许,会有另一个想法,好的,我再建个单例,把左右键点击次数记下来,这个想法就比上面的想法好多了,但是,还是有问题,既然已经有个类在计数了,何必再多出一个类呢?这不是浪费内存又浪费存储空间吗?还增加了代码量,管理起来又有诸多不便。那该怎么办呢?

       如果没有把雷数计数当做单例,这个问题就好办了,你可以生成多个对象,用于不同的计数就好了。问题是,雷数计数可以不做成单例吗?答案是肯定的,因为我们只需要在界面或者规则中,访问雷数计数,其他地方根本不需要访问到剩余雷数。

       在实践过程中,我发现,如果一个软件系统中对于某个需求是唯一的,我们第一考虑是单例,但是,我们必须多个心眼,这个单例,将来是否需要被扩展。另外,我认为,如果一个软件系统中,对某个需求是唯一的,并且这个需求仅被几个少数的类使用,我建议不要做成单例,以便将来直接移植这个类,不要给后续开发人员造成移植痛苦(后续开发人员,必须想,为什么这个类要做成单例,它有什么特殊要求、特殊应用环境)。这个思考过程是非常痛苦的~~~

      另外,关于单例模式在技术上的问题,我就不讲了,要深入了解,就去百度或者谷歌一下~~~

Kali Linux Tools 中文說明書 nmap包说明 NMAP(“网络映射”)是一个自由和开放源码(许可证)工具进行网络发现和安全审计。许多系统和网络管理员也觉得有用,如网络库存,管理服务升计划和监控主机或服务的正常运行时间的任务。 NMAP使用原始IP包以新颖的方式来确定哪些主机是在网络上可用,这些主机正在提供什么样的服务(应用程序的名称和版本),什么操作系统(和OS版本),它们都在运行,什么类型的分组过滤器/防火墙在使用中,和许多其他特性。它的目的是快速扫描大型网络,但能正常工作对单个主机。 Nmap的运行在所有主要计算机操作系统,和官方的二进制软件包可用于Linux,Windows和Mac OS X的除了经典的命令行Nmap的可执行文件,nmap的套件包括一个先进的GUI和结果浏览器(Zenmap)一种灵活的数据传送,重定向和调试工具(NCAT),用于比较扫描结果(Ndiff)的实用程序,并且一个分组产生和响应分析工具(Nping)。 Nmap的被评为“年度安全产品”,由Linux杂志,信息世界,LinuxQuestions.Org和Codetalker摘要。有人甚至功能十二电影,包括重装上阵,虎胆龙威4,女孩龙纹身,和谍影重重。 Nmap是比较合适? 灵活:支持数十台先进的技术映射出网络充满了IP过滤,防火墙,路由器和其他障碍。这包括许多端口扫描机制(包括TCP和UDP),操作系统检测,版本检测,ping扫描,等等。请参阅文档页面。 功能强大:Nmap的已被用来扫描字面上机数十万庞大的网络。 便携性:大多数操作系统都支持,包括Linux,微软的Windows,FreeBSD下,OpenBSD系统,Solaris和IRIX,Mac OS X中,HP-UX,NetBSD的,SUN OS,Amiga的,等等。 很简单:虽然Nmap的提供了一套丰富的先进功能的电力用户,你可以开始作为简称为“NMAP -v -A targethost”。这两种传统的命令行和图形(GUI)版本可供选择,以满足您的喜好。二进制文件是为那些谁不希望从源代码编译的Nmap。 免费:在Nmap的项目的主要目标是帮助使互联网更安全一点,并为管理员提供/审计/黑客探索他们的网络的先进工具。 NMAP是可以免费下载,并且还配备了完整的源代码,你可以修改,并根据许可协议的条款重新分发。 有据可查:重大努力已投入全面和最新的手册页,白皮书,教程,甚至一整本书!发现他们在这里多国语言。 支持:虽然Nmap的同时没有担保,这是深受开发者和用户一个充满活力的社区提供支持。大多数这种相互作用发生在Nmap的邮件列表。大多数的bug报告和问题应该发送到NMAP-dev邮件列表,但你读的指引之后。我们建议所有用户订阅低流量的nmap-黑客公布名单。您还可以找到的Nmap在Facebook和Twitter。对于即时聊天,加入Freenode上或连接到efnet的#nmap通道。 好评:Nmap的赢得了无数奖项,包括“信息安全产品奖”,由Linux杂志,信息世界和Codetalker文摘。它已被刊登在数以百计的杂志文章,几部电影,几十本书,一本漫画书系列。访问进一步的细节新闻页面。 热门:成千上万的人下载Nmap的每一天,它包含许多操作系统(红帽Linux,Debian的Linux中,Gentoo的,FreeBSD下,OpenBSD的,等等)。它是在Freshmeat.Net库的前十名(总分30000)方案之间。这是很重要的,因为它的Nmap借给其充满活力的发展和用户的支持群体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值