文档介绍:java工厂设计形式课件
1
学习问题
随着经济的全球化,一个软件可能要在全球销售。因此,我们设计的软件应该可以通过简单的配置就可以适应不同的国家。
本讲所学的知识将能提供一种有助于解决此问题的方法。
2
对象创立问题…
关于:
按照面向抽象的设计原那么,我们应该面向接口编程而不是面向实现编程。但是我们每次使用时,是不是正在违犯这一原那么呢?
我们想用接口
但却必须建立一个详细类的实例
= ()
3
问题…
当你拥有一组相关的详细类时,你常常被迫写出类似下面的代码:
;
() {
();
} () {
();
} () {
();
}
这样做的原因是直到运行时我们才知道需要实例化那个类。
这样做的后果是假如应用要做变化或扩展,往往要修改这段代码。这使得维护困难并容易引入错误。
4
问题在哪里?是的问题吗?
从技术上来说,并没有任何问题。是最根本的部分。真正的问题在于“变化〞
假如对接口编程,我们可实现与许多“变化〞的隔离,因为通过多态机制,你的代码对于实现接口的新类仍然适用。但是使用详细类费事就来了,因为增加新的详细类时相应代码可能就必须修改。
5
怎么办呢?
= ()
上面这段代码所在的模块与模块形成了耦合。
6
再回忆我们前面提出的面向对象设计的原那么
识别应用的变化部分,并将之与固定的部分相别离。
7
区分变化的部分
下面我们来看一个例子
店
8
披萨
9
类中的一段代码-订做
{
…
() {
= ();
();
();
();
();
;
}
…
}
真希望这是一个抽象类或者接口,可惜抽象类或接口都不能被实例化
而且,我们有许多种,所以我们增加一些代码,来确定适宜的种类,然后进展制作。
10