设计模式概述

本文介绍了设计模式的重要性,如提高代码复用性、可维护性和安全性,并详细解释了单一职责原则和依赖倒置原则。通过实例展示了依赖倒置原则的应用,说明如何通过接口隔离和最小知识原则改进代码结构,以实现更灵活的扩展性。
摘要由CSDN通过智能技术生成

1.什么是设计模式

  • 前辈总结开发设计方法 不同的设计模式有不同使用场景

2. 为什么要学习设计模式

  • 为了提高代码复用性 可维护性 稳健性 以及安全性

3. 23中设计模式背后的设计原则(背后的原则 一个分字)

  • 单一职责: 一个类 一个方法 尽量只做一件事
  • 开闭原则 :对修改关闭 对扩展开放
  • 接口隔离原则:一个接口把很多功能集合在一起,导致有些类必须要实现它不需要的方法。所以将一个接口的多个接口 可按照功能和职责划分为多个接口(接口分开)
  • 依赖倒置原则:上层依赖于抽象 不能依赖于具体的底层(上下层分开)
  • 最少知道原则:一个类尽量和自己的朋友通信。所谓的朋友指类的成员变量 返回值 方法参数。
  • 里氏替换原则:
  • 组合优于继承:
package com.xiaoliang.yilaidaozhi.navite;

/**

 *  依赖倒置 反例
 */
public class yilaidaozhi {
    public static void main(String[] args) {
        Person person = new Person();
        person.feed(new Cat());
        person.feed(new Tiger());
    }
}

/**
 * 服务端代码 依赖具体的下层
 * 每次下层每次扩展一次 上层就必须改动 不利于代码的扩展
 */
class Person {
    public void feed(Cat cat) {
        cat.eat();
        System.out.println("人喂猫");
    }

    public void feed(Tiger tiger) {
        tiger.eat();
        System.out.println("人喂老虎");
    }

    public void feed(Dog dog) {
        dog.eat();

    }
}

class Dog {
    public void feed(Dog dog) {

        dog.eat();
    }

    public void eat() {
        System.out.println("狗吃shi");
    }
}
class Cat {
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
class Tiger {
    public void eat() {
        System.out.println("老虎吃肉");
    }
}
package com.xiaoliang.yilaidaozhi.active;

/**
 * 依赖倒置
 * 上层不应该依赖于下层 而应该依赖于抽象层
 * 每次下层扩展只需要实现接口 重写方法 而不需要改动上层代码
 *
 */
public class yilaidaozhi {
    public static void main(String[] args) {
        Person person = new Person();
        person.feed(new Cat());
        person.feed(new Dog());

    }
}


interface Animal{
    void  eat();
}
/**
 * 服务端代码  不用动 只需要改动
 * 上层依赖性抽象层
 */
class Person {
    public void feed(Animal animal) {
        animal.eat();
    }
}

class Dog implements Animal {
    public void eat() {
        System.out.println("狗吃shi");
    }
}

class Cat implements Animal{
    public void eat() {
        System.out.println("猫吃鱼");
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值