- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于JAVA-单例模式,工厂模式,代理设计,模板设计
单例模式,工厂模式,代理设计,模板设计
单例模式:?? 作为对象的创建模式,单例模式确保某一类只有一个实例,而且自行实例化并向这个系统提供这一实例,这个类称为单例类.单例模式的要点:某个类只能有一个实例必须自行创建这个实例必须自行向这个系统提供这个实例在java中,可以使用一下这种方式使用单例模式创建类的实例:?? public class MyBean(){?? pvivate static MyBean instance = null;?? pvivate MyBean(){??? //do something?? }?? public static synchronized MyBean getInstance(){??? if(instance == null){???? instance = new MyBean();??? }else{??? }??? return instance;?? }}一些资源管理器常常设计成单例模式。 在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一 printer Spooler, 以避免两个打印作业同时输出到打印机中。每台计算机可以有若干传真卡,但是只应该有一个软件负责管理传真卡,以避免出现两份传真作业同时传到传真卡中的情况。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。 需要管理的资源包括软件内部资源,譬如,大多数的软件都有一个(甚至多个)属性(properties)文件存放系统配置。这样的系统应当由一个对象来管理一个属性文件。 需要管理的软件内部资源也包括譬如负责记录网站来访人数的部件,记录软件系统内部事件、出错信息的部件,或是对系统的表现进行检查的部件等。这些部件都必须集中管理,不可政出多头。 这些资源管理器构件必须只有一个实例,这是其一;它们必须自行初始化,这是其二;允许整个系统访问自己这是其三。因此,它们都满足单例模式的条件,是单例模式的应用。
V2. 工厂模式
工厂模式介绍(java)收藏一、引子?????? 话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上Audi后他说“开奥迪车!”。?????? 你一定说:这人有病!直接说开车不就行了?!?????? 而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!?????? 幸运的是,这种有病的现象在OO语言中可以避免了。下面以Java语言为基础来引入我们本文的主题:工厂模式!!
二、简介??????? 工厂模式主要是为创建对象提供了接口。工厂模式按照《Java与模式》中的提法分为三类:??????????????? 1. 简单工厂模式(Simple Factory)??????????????? ??????????????? 2. 工厂方法模式(Factory Method)??????????????? 3. 抽象工厂模式(Abstract Factory)??????? 这三种模式从上到下逐步抽象,并且更具一般性。??????? 还有一种分类法,就是将简单工厂模式看为工厂方法模式的一种特例,两个归为一类。两者皆可,这本为使用《Java与模式》的分类方法。??????? 在什么样的情况下我们应该记得使用工厂模式呢?大体有两点:??????????????? 1.在编码时不能预见需要创建哪种类的实例。?????????? 2.系统不应依赖于产品类实例如何被创建、组合和表达的细节???????? 工厂模式能给我们的OOD、OOP带来哪些好处呢????????? 等我们讲完后,大概你就能知道了??????
三、简单工厂模式??????? 顾名思义,这个模式本身很简单,而且使用在业务较简单的情况下。??????? 它由三种角色组成:??????????????? 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。??????????????? 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。??????????????? 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。??????? 来用类图来清晰的表示下的它们之间的关系(如果对类图不太了解,请参考我关于类图的文章):?????
文档评论(0)