设计模式七大原则深度解析与应用实践

设计模式七大原则深度解析与应用实践

一、单一职责原则(SRP)

1.1 原则讲解

一个类应该只有一个引起它变化的原因。

1.2 代码示例

// 违反SRP的类
class User {
    void login() { /* 登录逻辑 */ }
    void sendEmail() { /* 发送邮件逻辑 */ }
}

// 符合SRP的类
class UserAuth {
    void login() { /* 登录逻辑 */ }
}

class EmailService {
    void sendEmail() { /* 发送邮件逻辑 */ }
}

1.3 应用场景

电商系统中,用户管理和邮件通知功能分离,避免修改邮件逻辑影响用户认证。


二、开闭原则(OCP)

2.1 原则讲解

软件实体应对扩展开放,对修改关闭。

2.2 代码示例

// 违反OCP的设计
class DiscountCalculator {
    double calculate(String type) {
        if (type.equals("VIP")) return 0.8;
        else return 1.0;
    }
}

// 符合OCP的设计
interface DiscountStrategy {
    double applyDiscount();
}

class VIPDiscount implements DiscountStrategy {
    @Override
    double applyDiscount() { return 0.8; }
}

2.3 应用场景

电商促销系统,新增折扣类型时无需修改原有代码。


(其他原则内容类似,此处省略部分内容...)

七、合成复用原则(CARP)

7.1 原则讲解

优先使用对象组合,而非类继承。

7.2 代码示例

// 使用继承
class Bird {
    void fly() {}
}

class Penguin extends Bird {} // 企鹅不会飞,违反CARP

// 使用组合
class FlyingAbility {
    void fly() {}
}

class Bird {
    private FlyingAbility flyingAbility;
    void fly() { flyingAbility.fly(); }
}

7.3 应用场景

游戏开发中,角色技能通过组合动态扩展。

总结

通过电商系统、日志系统等场景,展示了七大原则的实际应用价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值