极客时间《设计模式之美》学习
如何进行面向对象设计?
在面向对象设计阶段,我们将需求描述转化为具体的类。可以包含以下几部分:
- 划分职责进而识别出有哪些类;
- 定义类及其属性和方法;
- 定义类与类之间的交互关系;
- 将类组装起来,并提供执行入口。
划分职责进而识别出类
根据需求描述,把其中涉及的功能点,一个个罗列出来,然后去看哪些功能点职责相近,操作同样的属性,是否应该归为同一个类。
注意:拆解出来的功能点要尽可能的小,每个功能点只负责做一件很小的事情。
定义类机器属性和方法
对于方法识别,我们可以这么做:识别出需求描述中的动词,作为候选的方法,再进一步过滤筛选。类比方法识别,可以把功能点中涉及的名词,作为候选属性,然后同样进行过滤筛选。
定义类与类之间的交互关系
一般有四种关系:泛化、实现、组合、依赖。
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){}
}
网友评论