设计模式七大原则

设计模式

七大原则

单一职责原则

接口隔离原则

依赖倒转原则

里氏替换原则

开闭原则

迪米特法则

合成复用原则

一、单一职责原则

基本介绍:

  • 每一个类应该只负责一项职责。

实例:

一个类A负责两个不同的职责,D1和D2,当D1的需求变更而导致类A的改变时,就可能导致D2出错,因此需要将A分为A1+A2。

二、接口隔离原则

基本介绍

  • 一个类不应该依赖他不需要的依赖。

实例:

例如一个接口中有多个方法,而某个类只需要实现其中的某些方法,那么这个接口应该拆分为几个独立的接口。

三、依赖倒转原则

基本介绍:

  • 高层模块不应该依赖底层模块、二者都应该依赖其抽象

  • 中心思想就是面向接口编程

  • 使用接口和抽象类定制好规范

实例:

1、通过接口传递依赖

2、通过构造方法传递依赖

3、通过setter()方法传递依赖

代码:接口传递

package com.rwl.principle.inversion;

public class Invert1 {
    public static void main(String[] args) {
        new Person().receive(new Email());
        new Person().receive(new WeiXin());
    }
}

interface Irec { //依赖倒转的关键是使用接口
    public String getInfo();
}
}

class Person {
    public void receive(Irec irec) {//这样只依赖这个接口,修改时只需要增加接口的实现类
        System.out.println(irec.getInfo());
    }
}

class WeiXin implements  Irec {
    public String getInfo() {
        return "微信消息";
    }
}

class Email implements Irec{
    public String getInfo() {
        return "电子邮件信息 : Hello";
    }
}
四、里氏替换原则

基本介绍:

  • 引用基类的地方必要能透明地使用其子类的对象。

  • 尽量不要重写父类的方法

实例:

将继承关系不明显的父类 和子类解除继承关系(例如子类需要重写较多的父类方法时,就需要这样做)

1)让其都继承一个基类

2)用组合的关系

class A {
    
}

class B {
    private A a = new A();//这是组合的关系
}
五、开闭原则

基本介绍:

  • 一个软件实体如:类、模块、函数应该对扩展开放(对提供方),对修改关闭(使用方),用抽象构建架构,用实现拓展细节。

  • 比如需要增加新功能,对增加功能开放,但是我们不能修改之前的代码,即对修改关闭。

  • 开闭原则是编程中最基础、最重要的设计原则,其他的原则和设计模式的目的就是为了遵循开闭原则。

实例

1)spring的面向切面编程—AOP

2)还是多用接口,新的功能只要实现这个不需要改变的接口就行

六、迪米特法则

基本介绍

  • 一个对象应该对其他对象保持最少的了解
  • 一个类对自己依赖的类知道地越少越好(多使用private保密)

实例

1)类之间的依赖关系最好不要以局部变量的方式体现,而是放在方法参数、成员变量、方法返回值中。

2)即实现高内聚,不要把自己需要实现的方法写到别的类里面。

七、合成复用原则

基本介绍

  • 能使用合成/聚合的方式,就不用继承的方式,这样可以解耦合。

实例

B想使用A的方法

合成:类B的方法中,将类A作为这个方法的参数

聚合:在类B中创建类A的成员变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值