面向对象设计

极客时间《设计模式之美》学习

如何进行面向对象设计?

在面向对象设计阶段,我们将需求描述转化为具体的类。可以包含以下几部分:

  • 划分职责进而识别出有哪些类;
  • 定义类及其属性和方法;
  • 定义类与类之间的交互关系;
  • 将类组装起来,并提供执行入口。
划分职责进而识别出类

根据需求描述,把其中涉及的功能点,一个个罗列出来,然后去看哪些功能点职责相近,操作同样的属性,是否应该归为同一个类。
注意:拆解出来的功能点要尽可能的小,每个功能点只负责做一件很小的事情。

定义类机器属性和方法

对于方法识别,我们可以这么做:识别出需求描述中的动词,作为候选的方法,再进一步过滤筛选。类比方法识别,可以把功能点中涉及的名词,作为候选属性,然后同样进行过滤筛选。

定义类与类之间的交互关系

一般有四种关系:泛化、实现、组合、依赖。

1.泛化
可以理解为继承。

public class A{}
public class B extends A{}

2.实现
可以理解为接口。

public interface A{}
public class B implements A{}

3.组合

1.A包含B,B对象生命周期不依赖A对象声明周期:
public class A {
  private B b;
  public A(B b) {
    this.b = b;
  }
}

2.A包含B,B对象生命周期依赖A对象的生命周期:
public class A {
  private B b;
  public A() {
    this.b = new B();
  }
}

4.依赖
是一种比组合更弱的关系,只要B类对象和A类对象有任何使用关系,我们都称他们有依赖关系。

比如:
public class A {
  public void func(B b){}
}

你可能感兴趣的:(面向对象设计)