软件工程概述及设计模式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
1 OO概述
public class Driver { private String driverName;
public String getName() { return driverName;
}
public void setName(String name) { driverName = name;
.
1 OO概述 老张开车去东北。 请用OO思想进行分析(OOA)和设计(OOD)。 封装类(名词):
.
1 OO概述 老张开车去东北。 封装 创建成员方法。
.
1 OO概述 老张开车去东北。 获取属性,完善成员方法。
.
1 OO概述 老张开车去东北。 封装:作用? 隐藏信息,降低类间耦合性。
.
1 OO概述 老张开车去东北。 初始设计
} //Vihecle vihecle = new Car(); public void drive(Vihecle vihecle) {
vihecle.go(new Address("东北")); } }
.
1 OO概述
public abstract class Vihecle { public abstract void go(Address dest);
• 本质:面向抽象编程,定义与实现的分离。
}
public class Car extends Vihecle{ public void go(Address dest) { System.out.println("一路哼着歌,冒着烟,去了" + dest.getName()); }
}
public class Plane extends Vihecle{ public void go(Address dest) { System.out.println(“一路驾着云彩去了" + dest.getName()); }
口的抽象方法只能是public. 4.抽象类可以包含静态方法,但接口不可以. 5. 抽象类中静态成员变量的访问类型可以任意.但接口只能是 Public(static)final类型. 6.一个类可以实现多个接口,但只能继承一个抽象类.
.
2 面向接口编程 设计层面: 抽象类是某种抽象事物(is a)。 接口是一组行为规范(like a)。 接口体现了 “如果你是……则必须能……”的理念
} }
.
1 OO概述
public class Car{ public void go(Address dest) { System.out.println("一路哼着歌,冒着烟,去了" + dest.getName()); }
}
.பைடு நூலகம்
1 OO概述
public class Address { private String addressName;
语法层面: 抽象类体现单继承关系; 接口可实现多继承。
.
2 面向接口编程
.
2 面向接口编程
• 面试题(扩展题):
2.1 接口是否可以继承接口? 2.2 接口是否可以继承抽象类? 2.3 抽象类是否可以实现接口? 2.4 抽象类是否可以继承具体类? 2.5 抽象类中是否可以有静态的main方法?
抽象类与普通类的唯一区别就是不能创建实例对象和允许有 abstrct方法!
.
1 OO概述
public class Driver { private String driverName;
public String getName() { return driverName;
}
public void drive(Car car) { car.go(new Address("东北"));
}
有什么缺陷?
.
1 OO概述 持续优化:添加而不修改,系统扩展性强! 重载
.
2 面向接口编程
• 面试题:
1 abstract class和interface有什么区别? 1.抽象类可以有构造方法,接口不可以. 2.抽象类中可以有普通成员变量,普通方法.接口不可以. 3.抽象类中的抽象方法的访问类型不能是private访问类型,但接
} .
1 OO概述
public class Address { private String addressName;
public Address(String name) { addressName = name;
} public String getName() {
return addressName ; } public void setName(String name) {
.
2 面向接口编程
面向接口编程: 在系统分析和架构中,分清层次和依赖关系,下层不是直接向 其上层提供服务:即不是直接实例化在上层中,而是通过定义 一组接口,仅向上层暴露其接口功能,上层对于下层仅仅是接 口依赖,而不依赖具体类。
系统层次间协作关系是系统设计的关键 ,小到不同类之间的通 信,大到各模块之间的交互 。
addressName = name; } }
.
1 OO概述
public class Client{ public static void main(String[] args) { Driver d = new Driver(); d.setName("老张"); //d.drive(new Plane()); d.drive(new Car()); }
public String getName() { return addressName ;
} public void setName(String name) {
addressName = name; } }
.
1 OO概述 老张开车去东北。 设计优化:继承和多态 在某个粒度视图层面上对同类事物不加区别的对待而统一处理
目录
1 OO概述 2 面向接口编程 3 OO六大原则 4 常用设计模式
.
1 OO概述 ➢ 面向对象分析(OOA) 做什么? 从问题域中获取需要的类和对象,以及它们之间的关系。
➢ 面向对象设计(OOD) 怎么做?
➢ 面向对象编程(OOP) Do it
.
1 OO概述 老张开车去东北。 请用OO思想进行分析(OOA)和设计(OOD),体现OO三大特性 封装类(名词):
相关文档
最新文档