zoukankan      html  css  js  c++  java
  • 设计模式

    设计原则

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

    设计模式

    策略模式

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

    观察者模式

    定义

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

    实现方式

    观察者模式在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:栈

  • 相关阅读:
    MVC通过后台注解来添加对数据的验证。
    HTML赋值方法练习
    HTML辅助方法的练习一
    第一次接触MVC Models概念
    部分视图的理解
    使用布局文件(Layout)
    springboot基本配置及快速启动
    springboot代码测试注意事项
    logback日志的基本使用
    springboot快速创建项目框架
  • 原文地址:https://www.cnblogs.com/darknessplus/p/11405124.html
Copyright © 2011-2022 走看看