设计模式与实战

设计模式与实战

Scroll Down

设计模式概述

设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制解决方案。

设计模式分类

1、目的分类

  • 创建型:主要用于创建对象。
  • 结构型:主要用于处理类或对象的组合
  • 行为型:主要用于描述类或者对象交互和分配职责
    2、范围分类
  • 类模式处理类和子类之间的关系
  • 对象模式处理对象间的关系

面向对象的设计原则

1、单一职责

在软件系统中(大到模块,小到方法)承担的职责越多,被复用的可能性就越小。所以,尽可能的保证类或者方法的职责单一性,降低复用难度,有助于系统实现高内聚、低耦合的设计目标。

2、开闭原则

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

//这样的代码就很不方便扩展,如果有其他的通知需要可能就要重写notice方法,我们可以通过策略模式,让代码能更方便的扩展。
class AccountSignIn {
    public void signIn() {
        // 注册的逻辑
        // 通知的逻辑
        String type = "手机号";
        // or String type = "邮箱";
        notice(type);
    }

    void notice(String type) {
        if (type.equals("手机号")) {

        }
        if (type.equals("邮箱")) {

        }
        if (type.equals("other")) {

        }
    }
}


//这样就可以很方便的扩展了
class AccountSignIn {
    INotice notice;

    AccountSignIn(INotice notice) {
        this.notice = notice;
    }

    public void signIn() {
        // 注册的逻辑
        // 通知的逻辑
        notice.notice();
    }
}

interface INotice {
    void notice();
}

class EmailNotice implements INotice {
    public void notice() {

    }
}

class SMSNotice implements INotice {
    public void notice() {

    }
}

3、里氏代换原则

所有引用基类的地方必须能透明的使用其子类对象。
// TODO 结合代码示例

参考