java常用的几种单例模式(懒汉式,饿汉式
单件模式用途:单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用。
单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统中只有一个实例。
它的用途十分广泛,打个比方,我们开发了一个简单的留言板,用户的每一次留言都要将留言信息写入到数据库中,最直观的方法是没次写入都建立一个数据库的链接。
这是个简单的方法,在不考虑并发的时候这也是个不错的选择。
但实际上,一个网站是并发的,并且有可能是存在大量并发操作的。
如果我们对每次写入都创建一个数据库连接,那么很容易的系统会出现瓶颈,系统的精力将会很多的放在维护链接上而非直接查询操作上。
这显然是不可取的。
如果我们能够保证系统中自始至终只有唯一一个数据库连接对象,显然我们会节省很多内存开销和cpu利用率。
这就是单件模式的用途。
当然单件模式不仅仅只用于这样的情况。
在《设计模式:可复用面向对象软件的基础》一书中对单件模式的适用性有如下描述:1、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
2、当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
下面对单件模式的懒汉式与饿汉式进行简单介绍:1、饿汉式:在程序启动或单件模式类被加载的时候,单件模式实例就已经被创建。
2、懒汉式:当程序第一次访问单件模式实例时才进行创建。
如何选择:如果单件模式实例在系统中经常会被用到,饿汉式是一个不错的选择。
找几本C#基础的书
30本好书点评:分4大方向(html--Web的基础;javascript--让网页动起来;C#--程序;数据)图中纵向;5个时期(入门,基础,应用,提高,飞跃)图中横向;一.入门1.《HTML与CSS入门经典(第7版) 》HTML入门 点评:html语言的入门,由于html极其简单所以同类其他书也可代替,本书并非经典,本书摆在这里纯属占位!你可以用其他书代替。
2.《C#入门经典(第3版)》C#入门点评:经典中的经典,个人认为是30本书里最重要的,虽然其他讲C#的好书也很多但大多1.0版的,很多在书店已经绝版,被《程序员》等机构评选为2006年最受读者喜爱的十大IT图书之一。
3.《精通SQL--结构化查询语言详解》SQL数据入门 点评:不能说很好,但也不差,感觉吃透全书也可以应付如常SQL语句了。
4.《专家门诊--SQL SERVER开发答疑200问》SQL数据入门点评:好书,正好结合上本,可惜的是不是Sqlserver2005。
5.《SQL SERVER 2005基础教程》SQL数据入门点评:书一般,不过还是很全的,和同类书比起来还是不错。
入门总结:这几本书学的快的话2个月,慢则数月,如果真的吃透基本上就打了很好的底子!当然不能说100%,很多东西还要后面的学习来发现不足,重新学习。
作者http://blog.csdn.net/21aspnet/。
二.基础6.《Programming ASP.NET中文版(第3版)》ASP.NET基础点评:经典中的经典,全球经典,五年三版,权威著作,这本书是最最基础的ASP.NET入门书,讲的非常全涵盖所有基本面,每一个控件都细细说明,非常易懂,不过本书讲的难免有点杂,初学者看了难免云里雾里所以要下一本书提纲挈领,此书非看不可。
7.《ASP.NET 2.0经典教程--C#篇》ASP.NET基础点评:经典,和上一本结合起来最好,本书讲大的方面,看了能让人明白asp.net分那几个步骤,不过唯一的缺陷就是不细,上一本正好补充,此书非看不可。
8.《C#高级编程(第4版)》C#基础点评:好书却不经典,本书被吹嘘的神乎其神,被评选为2005年最权威的十大IT图书之一,2006年最受读者喜爱的十大IT图书之一,其实本书不过讲了一些其他书没有的内容而已,内容比较多而已,本书也是所有.NET书中字数最多的一本,蛮厚的,可以当作C#语法的提高,做参考书吧,不过总体而言写的还是可以。
9.《JAVASCRIPT 权威指南(第四版)》Javascript基础点评:好书却不经典,这本书也被吹嘘的神乎其神,其实后半部分全部是Javascript语法参考,感觉本书只能做参考书,讲语法还是可以的讲的还算深,内容也很详,不过看懂前半部分后来喜欢它的原因却变后半部分,和下一本结合就成更完美的参考书。
10.《WEB开发人员参考大全:最完整的HTML、CSS与JAVASCRIPT工具书 》Javascript,html,css基础点评:好书,书如其名,作者是位老先生,经验很丰富,本书是每一位从事BS开发人员的必备参考书和上一本结合就更好了。
11.《SQLServer2005从入门与精通(应用技术基础) 》SQLServer基础点评:好书,可以帮助读者对SQLServer增进了解,毕竟是微软出版社的,书中讲的知识都是开发人员必备的,例如聚合函数,嵌套事务,报表等等。
基础总结:这几本书学的估计要4个月了,慢的话半年都不一定学透,其实日后开发中用到的主要就是这个时候学的基础上综合应用,宁慢勿快!!!三.应用12.《JavaScript 高级程序设计》javascript应用点评:经典,比《JAVASCRIPT 权威指南(第四版)》讲应用讲得多,有Ajax部分,作者希望大家能把javascript按面相对象的思想处理。
13.《圣殿祭司的ASP.NET 2.0开发详解——使用C#》asp.net应用点评:好书,作者是台湾的,感觉台湾作者都有欧美风格,本书是专门针对2.0新增的部分,没有1.1部分,个人感觉这样对1.1的作者很好,只要看这本书就够了。
14.《ASP.NET 2.0高级编程(第4版)》asp.net应用点评:好书,出到第4版了,和《C#高级编程(第4版)》有的一拼,也是大部头,讲的很全,不过不觉得有多少闪光的地方,权作参考书吧。
15.《Beginning C# Objects中文版——概念到代码》C#应用点评:好书,讲C#怎么面向对象的还讲了UML以及建模的方法同时译者得水品很高。
不会面向对象是很可怕的,当然光会面向对象也不够还要和重构设计模式极限编程结合。
16.《ASP.NET 2.0数据库入门经典(第4版)》ADO.NET应用点评:鸡肋,可惜的是这本书是Beta版本但是出版社不知道出于什么原因没有写明Beta版本,而且代码是VB.NET,不过这本书讲数据操作ADO.NET还是很全的最起码让初学者明白个大概。
正式版有E文的,大家自己找吧。
17.《SQL Server 2005数据库开发实战》SQLServer2005应用点评:好书,作者是章立民老师,台湾4届MVP,想想当初本人就是看他书入门的,这是一本公认的很好入门书籍。
18.《ASP.NET2.0 经典案例教程》ASP.NET应用点评:好书,讲了几个经典例子,学了许多知识总是要用实例串起来的也是在这个过程中学习一些架构只是。
应用:这几本书学的估计要4个月,慢的话半年都不一定学透,这个时候主要扩大知识面,要结合实例,最好是做做留言板之类的小小项目。
四.提高19....
找个Java高手帮我解决一个程序问题,关于进程的调度问题,算法我自...
(本人学习比较努力,基本上一天学习九小时) 就冲以上这点, 你很有前途. 学VC基础非常重要, 请特别注意C与C++的区别, 一定要有面向对象的概念. 以下是我自己的学习经验, 推荐你看的书: 入门: 入门就是要初步对编程的思想有个了解,并且能编程解决一些小问题。
入门一定要选好书,难度如果太低了会造成对读者的误导,以为编程就是这么回事;也不能太高深,免的打击读者的信心。
既然编程的入门要求是编一些小程序解决小问题,那么就没必要直接学习C++,我觉得循环、判断、跳转、指针才是最基本的编程思想,学通了这些对以后学习C++很有帮助。
相信你已经过了这个阶段,可以用《C++编程思想》审视自己一下语言方面究竟扎实掌握多少了。
提高: 我们不能满足于解决“百钱买百鸡”,真正实现程序还有很多非功能上的问题,比如怎样做才能使用更少的内存?怎样做才能更快?在熟悉一门语言后,一定要认真学习的就是数据结构!数据结构保证了我们的程序能以高效的方式运行。
《 数据结构算法与应用C++语言描述 》是本好书,它提供了很多实际的例子,比如火车站调度、走迷宫,相比于“百钱买百鸡”这种问题又提高了一个层次。
(这里就是解决基本算法问题) 接下来可以看看《WINDOWS编程》《深入浅出MFC》等,也可以参考《visual c++ 6。
0 技术内幕》(现在微软应该已经出到。
NET版本了),你要用VC,那就是跟着微软走,所以要对他的实现模式和整个基本框架有了解,里面涉及很多API,消息的知识,够你学习一段时间了。
再提高: 到现在为止,你已经熟练掌握C++语言了,当然,你肯定也有了一定的工作经验。
现在你可以看看《effective C++》和《more effective c++》,因为你的代码还冗余很大,效率也很低,这两本书可以让你的编程水平有质的飞跃! 最后,你需要提高的就是设计思想,就由《 设计模式--可复用面向对象软件的基础 》来补救吧!所谓模式就是前人总结出来的、经过千锤百炼的一种系统结构,设计模式展示了23个经典的模式,通过学习、理解,你可以看到什么是真正的面向对象。
看了《 设计模式--可复用面向对象软件的基础 》后,有时间不妨看看《 重构--改善既有代码的设计(中文版) 》,学了面向对象的设计思想后看它,可以站在一定高度重新审视一下自己的C++编程水平。
结束语: 在学习编程的过程中一定要注意多实践!学习时到专业论坛同大家讨论是个不错的办法,你会找到许多热心的朋友与您一起学习,能通过学习编程交些朋友不是更好吗?最后,希望您能成为优秀的程序设计师,我也是过来人,大家可以多多交流,共同进步!忘了说了, 对于数据库什么的你不用担心, 只要基础扎实了, 无论什么具体工作上手都很快的. 反对那些知识埋头写程序而从来不用脑子好好想想的人. 千万不要忽视培养自己分析问题和把握宏观系统结构的能力!
简答:简述面向对象软件开发方法的基本概念和优点.
展开全部 基本概念:谈到面向对象,这方面的文章非常多。
但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。
起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。
可是,这个定义显然不能再适合现在情况。
面向对象的思想已经涉及到软件开发的各个方面。
如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。
许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。
看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。
这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。
面向对象的分析根据抽象关键的问题域来分解系统。
面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。
优点:1)近代的软件产业发展非常的迅速,但是却出现了让软件开发人员越来越不能忽视的危机,比如,软件的开发成本,尤其是大型软件开发成本、软件维护升级等费用非常的昂贵,针对出现的危机,人们提出了能够提高代码复用等的面向对象技术,面向对象技术的提出可以使客户于软件开发人员、软件开发人员之间的交流更加的顺畅,原因在于:首先,面向对象技术通常对现实世界的对象进行抽象,这种抽象使得即是非专业人员也能明软件要做什么,使得客户于专业的软件开发人员交流起来更加顺畅,节约开发成本;其次,面向对象技术通常会采用封装,继承等技术,这些技术会使得不同的程序模块之间的关联度减小,可以使得开发人员专注于程序的研发,而不是把大量的精力都放到各个模块的协调上。
2)并不是说我们利用了面向对象的语言,比如C++、JAVA,面向对象技术的好处就会出现,实际上在小的程序设计上,可能根本不需要这么复杂。
真正的大型软件开发用到时需要采用相应的技术方法,不断的优化,比如瀑布模型法,快速原型法。
瀑布模型法主要是把软件分为若干阶段,在每一个阶段,都充分的和客户交流;快速模型法主要是首先提出一个总的模型提交给客户,然后在不断的修改,通常这种方法只适用于较小的工程。
无论采用那种方法我们可以遵从一个原则:就是把大的软件项目不断的细化,最后细化到一个个小函数,然后在根据之间的关系封装等。
转载请注明出处51数据库 » 设计模式 可复用面向对象软件的基础 ch