欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    一份培训设计模式ppt.ppt

    • 资源ID:6219471       资源大小:322KB        全文页数:31页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一份培训设计模式ppt.ppt

    ,Java核心技术,设计模式,本章目标,了解23种设计模式掌握常用几种设计模式,设计模式简介单例模式工厂模式代理模式适配器模式,主要内容,设计模式,Design Patterns:Elements of Reusable Object-Oriented Software(Gang of Four(GOF)95是软件模式的开创性著作用来解决代码复用,避免程序大量修改的一些成熟的套路或者方法用了设计模式会使项目复杂度增加,开发成本增加,但维护成本降低,灵活性更好,扩展性更强创建类型的模式(Creational)结构类型的模式(Structural)行为类型的模式(Behavioral),创建类型的模式,创建类型的模式如何有效地创建类的实例单例模式(Singleton)构建模式(Builder)原型模式(Prototype)简单工厂模式(Simple Factory)抽象工厂模式(Abstract Factory)工厂方法模式(Factory Method),结构类型的模式,结构类型的模式将类和对象组合起来,以构成更加复杂的结构,帮助开发人员将简单对象组合在一起形成更加复杂的结构,处理对象与对象之间的各种关系代理模式(Proxy)适配器模式(Adapter)装饰者模式(Decorator)组合模式(Composite)桥连接模式(Bridge)蝇量模式(Flyweight)外观模式(Facade),行为类型的模式,行为类型的模式主要是处理对象之间通讯的模式,帮助开发人员控制类之间的通讯策略模式(Strategy)状态模式(State)责任链模式(Chain of Responsibility)解释器模式(Interpreter)命令模式(Command)观察者模式(Observer)备忘录模式(Memento)迭代器模式(Iterator)模板方法模式(Template Method)访问者模式(Visitor)中介者模式(Mediator),设计原则,逻辑代码独立到单独的方法中,注重封装性-易读,易复用。不要在一个方法中,写下上百行的逻辑代码。把各小逻辑代码独立出来,写于其它方法中,易读,可重复调用。模块间松耦合、模块内紧耦合。熟练运用继承的思想:找出应用中相同之处,且不容易发生变化的东西,把它们抽取到抽象类中,让子类去继承它们;熟练运用接口的思想:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。,继承与接口,不管黑猫白猫,只要抓得到老鼠,都是好猫猫:抓老鼠、叫、颜色各异第一种方法:(一次性代码)直接编写出各种猫的类,各类有三个方法:quack():叫catch():抓老鼠 display():颜色猫的共性:抓老鼠、叫、猫的个性:颜色(黑白)黑猫、白猫,运用继承,public class Cat public void quack()/呱呱叫(“呱呱叫”);public void catch()/抓老鼠(“抓老鼠);public abstract void display();/*因为外观不一样,让子类自己去决定了。*/对于它的子类只需简单的继承就可以了,并实现自己的display()方法。/白猫public class WhiteCat extends Duck public void display()(“白猫.”);/黑猫public class BlackCat extends Duck public void display()(“黑猫.);,运用接口,public class Cat public void quack()/呱呱叫(“呱呱叫”);public abstratact void display();/*因为外观不一样,让子类自己去决定了。*/public interface ICatch public void catch();/白猫public class WhiteCat extends Cat implements ICatch public void display()(“白猫的颜色.”);public void catch()/实现该方法/黑猫public class BlackCat extends Cat/implements ICatch public void display()(“黑猫的颜色.);,小结,继承的好处:让共同部分,可以复用.避免重复编程.继承的不好:耦合性高.一旦超类添加一个新方法,子类都继承,拥有此方法,若子类相当部分不实现此方法,则要进行大批量修改.继承时,子类就不可继承其它类了.接口的好处:解决了继承耦合性高的问题.且可让实现类,继承或实现其它类或接口.接口的不好:不能真正实现代码的复用.,SINGLETON模式,概念:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式只应在有真正的“单一实例”的需求时才可使用场景:读取配置文件、Socket链接、数据库资源等,public class SingletonA private static SingletonA s;public static SingletonA getInstance()if(s=null)s=new SingletonA();return s;,SingletonA single=SingletonA.getInstance();,简单工厂模式,概念:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。工厂(Creator)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。抽象产品(Product)角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。具体产品(Concrete Product)角色:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。,实例,见实例。,简单工厂模式,优点:通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的缺点:它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。,思考,女娲造人:帮我造个叫张三的人吧!,抽象工厂模式,概念:抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。抽象工厂(Creator)角色具体工厂(Concrete Creator)角色 抽象产品(Product)角色 具体产品(Concrete Product)角色,抽象工厂模式,抽象工厂模式面对的问题是多产品等级结构的系统设计学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的CPU和AMD芯片的主板,组成一个家族。Intel的CPU和Intel芯片的主板,又组成一个家族。而这两个家族都来自于两个产品等级:CPU,主板。一个等级结构是由相同的结构的产品组成,示意图如下:,实例,农场主引进塑料大棚技术,在大棚里种植热(Tropical)和亚热带(Northern)的水果(Fruit)和蔬菜(Veggie),用以满足市场需求,获取更大的利益,实例,生产水果生产蔬菜,实例,见实例。,抽象工厂模式,创建同使用分开降低耦合度可扩展性,思考,女娲造人:阴绳女人或雌兽;阳绳男人或雄兽;甩出来泥土像人型即造人类,像兽类则造野兽。,代理模式,概念:对其他对象提供一种代理以控制对这个对象的访问。好处:-是可以在间接访问对象的同时,要其前或后,添加其它的逻辑代码。-对原来逻辑进行添加其它逻辑,最终生成新的逻辑。即:对类的方法添加一些额外的逻辑,生成新的方法逻辑。,静态代理,静态代理:-一个原类与一个代理类要一一对应。-两者都实现共同的接口或继承相同的抽象类;-只是在代理类中,实例化原类,在原类方法的前后添加新的逻辑。,实例,见实例。,动态代理,动态代理:Java动态代理类位于包下,一般主要涉及到以下两个类:1)Interface InvocationHandler:该接口中仅定义了一个方法:invoke(Object obj,Method method,Object args)obj一般是指代理类,method是被代理的方法,args为该方法的参数数组。这个抽象方法在代理类中动态实现。2)Proxy:该类即为动态代理类,其中主要包含以下内容:Static Object newProxyInstance(ClassLoader loader,Class interfaces,InvocationHandler h):返回代理类的一个实例,返回后的代理类可以当作被代理类使用。所谓Dynamic Proxy是这样一种class:它是在运行时生成的class,在生成它时你必须提供一组interface给它,然后该class就宣称它实现了这些 interface。3)在使用动态代理类时,我们必须实现InvocationHandler接口,,适配器模式,概念:适配器模式的意图是将一个已存在的类/接口进行复用,将其转换/具体化成客户希望的另外的一个类/接口如何实例复用:将要进行复用的类,放到目标类的构造方法中,进行实例化,然后在目标类的相应方法中,进行调用,修改原来方法中的参数,或添加相应的逻辑。即复用了已有类的原来方法。,实例,见实例。,实例,谢谢大家!,

    注意事项

    本文(一份培训设计模式ppt.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开