- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五节课设计模式——创建型模式1
第五节课 设计模式——创建型模式1 来源: 在我们实例化对象的时候通常使用new 方式来产生对象。这种方法很简单很方便,为什么还需要有专门的创建模式来实例化对象呢? 第一种情况,如果系统中有很多中类,需要实例化的时候,通过工厂方法,将相同或相似的类放到一个工厂或一类工厂中创建。代码清晰。 第二种情况,如果系统中有一个复杂的类,不能通过一个new 方式实现,可以通过建造者模式或原型模式;来创建。 第三种情况,如果系统中要创建一个类仅有一个实例,可以通过单例模式来创建。 模式名称 说明 简单工厂模式 通过参数选择创建不通的对象 工厂方法模式 通过选择不通的工厂类创建对象 抽象工厂模式 通过选择不通的工厂类,创建一系列对象。 建造者模式 有一个类模板,通过不通的建造者,实例化出不同的对象。 原型模式 有一个对象模板,通过克隆(clone) 或序列化(Serializable)的方式,创建一个新的对象。然后通过修改新对象的属性实现新对象的实例化。 单例模式 通过静态方式(static)实现一个类只有一个实例。 1、简单工厂模式,根据参数选择创建不通的对象 public 教职工 crate教职工(int sortId) { If(sortId==0){return new 教师()} If(sortId==1){return new 行政人员()} If(sortId==2){return new 校领导()} Return null; } 2、工厂方法模式 根据不通的工厂类创建不同的对象 3、抽象工厂模式 根据不通的工厂类,创建一系列对象 三种不同的开发模式 在创建一个系列对象的时候,系列对象并不能很容易都完全一致,有的系列对象可能会缺少一种或几种对象。这需要我们在开发中自己灵活判断掌握。 1、自己开发,自己知道,自己规避错误。 2、多人开发,严格遵循 3、多人开发,不严格遵循。需要NULL判断 模式名称 说明 涉及对象的关系 使用设计原则 如何高内聚低耦合 简单工厂模式 一个工厂对象,通过不通方法创建不通对象 完全依赖,工厂方法和生成对象一体,没有分开 创建行为和被生成对象完全在一起没有分离 工程方法模式 多个工厂对象,通过一种方法创建多个对象 工厂和对象是单向关联关系 工厂接口使用依赖倒转原则; 被生成对象使用里氏代换原则; 通过工厂访问对象,使用迪米特法则 创建行为抽象成为独立接口。然后通过接口实现。 被生成对象抽象成一个父类,通过继承 抽象工厂模式 多个工厂对象,通过多种方法,创建系列对象 工厂和对象是单向多重数关联关系 同上,知识抽象度更高一些 4、建造者模式(根据类模板,通过不同的建造者,创建不同的对象) 5、原型模式 public interface ksaps extends Cloneable { public Object clone(); } 6、单例模式 public class DlObject { private static DlObject intobject=null; /** * */ private DlObject() {} public static DlObject createDlObject() { // TODO Auto-generated constructor stub if(intobject==null) { System.out.println(无对象); intobject=new DlObject(); }else { System.out.println(有对象); } return intobject; } }public class KsapMain { /** * */ public KsapMain() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub DlObject intobj1=DlObject.createDlObject(); DlObject intobj2=DlObject.createDlObject(); DlObject intobj3=DlObject.createDlObject(); DlObject intobj4=DlObject.createDlObject(); if(intobj1==intobj2){System.out.p
有哪些信誉好的足球投注网站
文档评论(0)