[RE]Java设计模式(1)

设计模式:

  • Context(前提条件)
  • Theme(目标或问题)
  • Solution(解决方法)
特定条件下人们解决某类重复问题的成功解决方案

分类:创建型结构型和行为型模式\类模式和对象模式

  • 创建型模式:用于创建对象(工厂方法、抽象工厂、建造者、原型、单例)
  • 结构型模式:用于处理类或对象间的组合(适配器、桥接、组合、装饰、外观、享元、代理)
  • 行为型模式:用于描述类或对象间如何交互和分配职责(职责链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模版、访问者)

面向对象设计原则:

目的:提升软件系统的可重用性和可维护性

  • 可维护性:软件能够被理解、改正、适应及扩展的难易程度
  • 可重用性:软件及模块能够被重复使用的难易程度

七条原则:

  • 单一职责:一个对象应该只包含单一的职责,并且该职责被完整封装在一个类中
  • 开闭原则:软件实体应当对扩展开放,对修改封闭
  • 里氏代换:所有引用基类的地方必须能透明地引用他的子类
  • 依赖倒转:高层模块不应依赖底层模块,他们都应该依赖抽象,抽象不应该依赖于细节,细节应该依赖于抽象
    依赖倒转原则要求针对接口编程,不要针对实现编程。
    对于依赖关系使用依赖注入联系到其他对象。
    依赖注入:对某种依赖关系,A依赖于B,现不直接在A中实例化B的对象,而是将A声明为B的成员变量,在其他时候实例化B对象赋值给A中成员变量,此为依赖注入的一个实例
  • 接口隔离:客户端不应依赖不需要的接口。
  • 合成复用:优先使用对象组合,而不是通过继承达到复用目的。
    原因:1. 继承可能破坏封装。2. 继承的基类实现是静态的,运行时不能改变。3.继承使用的环境比较小。
    多令类间拥有Has-A的关系,而少有Is-A的关系
  • 迪米特法则:每个单位都对其他单位只拥有最少的知识,而且只局限于与他有关的单位。

创建型模式:

1. 简单工厂模式:

定义一个工厂,可以根据输入参数不同返回不同结果,结果具有相同父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值