• 设计模式


    设计原则

    • 封装变化:将可能发生变化的部分独立出来
    • 多用组合,少用继承
    • 针对接口编程,而不针对实现编程
    • 松耦合设计
    • 开放-关闭原则:对扩展开发,对修改关闭

    设计模式

    策略模式

    定义一组可以互相替代的算法组,利用多态将具体实现隐藏

    观察者模式

    定义

    观察者模式定义了对象之间的一对多依赖,当对象状态改变时,它的所有依赖者都会收到通知并自动更新。

    实现方式

    观察者模式在Java里有两种实现方式:Java内置观察者模式、自定义观察者模式
    Java内置的观察者模式用到了Observer接口和Observable,由于Observable是类,限制了复用。

    自定义观察者模式:
    Observable接口应该具备的方法:addObserver, removeObserver, notifyObservers;属性:List
    Observer接口应该具备的方法:update

    装饰者模式

    定义

    动态的将行为附加到对象上,对对象功能进行扩展

    设计思路

    装饰者需要与被装饰者有相同的类型,并且被装饰者以组合的方式嵌入到装饰者中,然后在实现的方法中调用被装饰者的方法,达到扩展功能的目的。
    相同的类型?

    结构型模式

    适配器模式

    定义

    将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)
    适配器模式可以将一个类的接口和另一个类的接口匹配起来,而无须修改原来的适配者接口和抽象目标类接口

    类适配器和对象适配器

    类适配器通过继承实现
    对象适配器通过通过关联(组合)实现

    结构图

    类适配器:
    lei
    对象适配器:
    img

    target:客户端所需的接口抽象
    adapter:上述接口抽象的实现类,转换器
    adaptee:被适配的角色,已存在的接口或实现

    class Adapter extends Target {
    	private Adaptee adaptee; //维持一个对适配者对象的引用
    	
    	public Adapter(Adaptee adaptee) {
    		this.adaptee=adaptee;
    	}
    	
    	public void request() {
    		adaptee.specificRequest(); //转发调用
    	}
    }
    

    开源框架

    spring TaskExecutor
    再如,如何用两个栈实现队列?adapter:队列,adaptee:栈

  • 相关阅读:
    《痕迹识人,面试读心》培训总结之一
    傲游与视频网站广告之战的思考
    EMLS项目推进思考
    二级证丢失如何找回
    Mathematica 讲座
    泊松方程解法
    Windows核心编程-作业
    Win7多用户同时登陆
    C语言文件操作类型速查
    openMP的一点使用经验
  • 原文地址:https://www.cnblogs.com/darknessplus/p/11405124.html
Copyright © 2020-2023  润新知