美文网首页
设计模式

设计模式

作者: 金泽祺 | 来源:发表于2020-02-17 14:47 被阅读0次

    架构方法论

    领域建模

    • 领域实体,领域服务
    • 可视化,可配置化

    SOA

    • Service-Oriented Architecture 面向服务架构
    • 服务是松耦合(自包含的),黑盒子,自定义。中央存储库

    分层架构

    层次 模块名 接口后缀 对象后缀
    接入层 integration Client
    对外接口层 service facade Facade Request
    表现层 web-home Controller VO(View Object)
    应用层 biz Manager BO(biz Object)
    领域层 core-service Service
    持久层 dal Repository PO(Persistant Object)

    设计模式

    7大设计原则

    • 单一职责原则
    • 里氏替换原则:继承与派生的规则,尽量不要重写父类的方法
    • 依赖倒置原则:针对接口编程
    • 接口隔离原则:接口不要太臃肿
    • 迪米特法则:低耦合,高内聚
    • 开闭原则:对扩展开放,对修改关闭
    • 组合/聚合复用原则:多用组合/聚合,少用继承

    创建型模式

    • 抽象工厂模式abstract factory:
    • 工厂模式factory:
    • 原型模式prototype:
    • 单例模式singleton:
    • 多例模式multition:
    • 生成器模式builder:

    结构型模式

    • 适配器模式adapter:
    • 桥接模式bridge:
    • 组合模式composite:
    • 外观模式facade:
    • 享元模式flyweight:
    • 装饰器模式decorator:
    • 代理模式proxy:

    行为型模式

    • 责任链模式chain of responsibility:使多个对象都有机会处理请求。将对象连成一条链,并沿着这条链传递请求。
    • 命令模式command:将请求封装成对象,使请求发送者和请求接受者之间相互隔离
    • 备忘录模式memento:快照模式,数据备份机制。发起者Originator只关心备忘录的创建和恢复,备忘录存储在管理者Caretaker
    • 解释器模式interpreter:定义语言的文法,并且建立解释器来解释该语言中的句子
    • 观察者模式observer:
    • 访问者模式visitor:作用于一个对象结构ObjectStruct中各个元素Element的操作accept。在不改变元素类的前提下定义元素的新操作。数据结构稳定,但是操作可以自由演化。
    • 模版方法模式template:
    • 策略模式strategy:运行时改变一个类的行为或算法
    • 状态模式state:当对象的状态改变时,允许其改变行为。客户端调用Context。状态对象State既要处理当前状态,也要处理如何过渡到下一个状态。
    • 中介者模式mediator:
    • 迭代器模式iterator:

    J2EE模式

    • MVC模式:
    • 前端控制器模式front controller:
    • 业务代表模式business delegate:
    • 组合实体模式composite entity:
    • 数据访问对象模式data access object:
    • 拦截过滤器模式intercepting filter:https://www.oracle.com/technetwork/java/interceptingfilter-142169.html
    • 服务定位器模式service locator:
    • 传输对象模式transfer object:

    Command模式

    定义

    将请求封装成命令对象,实现请求调用者与请求接收者的解耦。
    命令接口Command:execute, undo, redo
    具体命令:实现命令接口
    调用者Invoker:持有命令,并调用命令方法
    接收者Receiver:接收命令并执行

    调用者调用(call)Commnd,然后由Command去执行(execute)接受者,最后由接受者完成业务逻辑(action)

    Command还可以提供undo,redo的功能:用一个辅助类(CommandManager)维护undo/redo command栈。初始化的时候undo command入栈,清空redo command栈。undo的时候,undo command出栈,放入redo command栈。redo的时候,redo command出栈,放入undo command栈。

    适用场景

    1. 系统要求请求调用者与请求接收者解耦
    2. 系统要求请求排队,在不同的时间执行
    3. 系统要求支持命令的Undo与Redo
    4. 系统要求将命令组合,形成宏

    谢谢阅读!

    相关文章

      网友评论

          本文标题:设计模式

          本文链接:https://www.haomeiwen.com/subject/ouvbfhtx.html