欢迎来到天天文库
浏览记录
ID:13117141
大小:38.50 KB
页数:7页
时间:2018-07-20
《关于java-单例模式,工厂模式,代理设计,模板设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单例模式,工厂模式,代理设计,模板设计单例模式: 作为对象的创建模式,单例模式确保某一类只有一个实例,而且自行实例化并向这个系统提供这一实例,这个类称为单例类.单例模式的要点:某个类只能有一个实例必须自行创建这个实例必须自行向这个系统提供这个实例在java中,可以使用一下这种方式使用单例模式创建类的实例: publicclassMyBean(){ pvivatestaticMyBeaninstance=null; pvivateMyBean(){ //dosomething } publicstaticsynchronizedMyBeangetInstance(){
2、 if(instance==null){ instance=newMyBean(); }else{ } returninstance; }}一些资源管理器常常设计成单例模式。 在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一printerSpooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。 需要管理的
3、资源包括软件内部资源,譬如,大多数的软件都有一个(甚至多个)属性(properties)文件存放系统配置。这样的系统应当由一个对象来管理一个属性文件。 需要管理的软件内部资源也包括譬如负责记录网站来访人数的部件,记录软件系统内部事件、出错信息的部件,或是对系统的表现进行检查的部件等。这些部件都必须集中管理,不可政出多头。 这些资源管理器构件必须只有一个实例,这是其一;它们必须自行初始化,这是其二;允许整个系统访问自己这是其三。因此,它们都满足单例模式的条件,是单例模式的应用。V2.工厂模式工厂模式介绍(java)收藏一、引子 话说十年前,有一个爆发户,他家有三辆汽车(
4、Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi后他说“开奥迪车!”。 你一定说:这人有病!直接说开车不就行了?! 而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的! 幸运的是,这种有病的现象在OO语言中可以避免了。下面以Java语言为基础来引入我们本文的主题:工厂模式!!二、简介 工厂模式主要是为创建对象提供了接口。工厂模式按照《Java与模
5、式》中的提法分为三类: 1.简单工厂模式(SimpleFactory) 2.工厂方法模式(FactoryMethod) 3.抽象工厂模式(AbstractFactory) 这三种模式从上到下逐步抽象,并且更具一般性。 还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。两者皆可,这本为使用《Java与模式》的分类方法。 在什么样的情况下我们应该记得使用工厂模式呢?大体有两点: 1.在
6、编码时不能预见需要创建哪种类的实例。 2.系统不应依赖于产品类实例如何被创建、组合和表达的细节 工厂模式能给我们的OOD、OOP带来哪些好处呢?? 等我们讲完后,大概你就能知道了 三、简单工厂模式 顾名思义,这个模式本身很简单,而且使用在业务较简单的情况下。 它由三种角色组成: 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或
7、者抽象类来实现。 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。 来用类图来清晰的表示下的它们之间的关系(如果对类图不太了解,请参考我关于类图的文章): 那么简单工厂模式怎么用呢?我来举个例子吧,我想这个比讲一大段理论上的文字描述要容易理解的多!下面就来给那个暴发户治病:P 在使用了简单工厂模式后,现在暴发户只
此文档下载收益归作者所有