设计模式到底怎么用疑惑,求助高人留步,不胜感激

09-10-22 mysd76
    

工厂方法 工厂加工产品的地方,

工厂模式 还分等级 大概主要分三级吧

1>最简单的想法 一个工厂类 一个抽象的产品 很多具体的产品

我可以通过工厂产生产品,所有产品的new 都依赖这个工厂

如果 这个工厂挂了 那么就程序就瘫痪了. 这大概就是说的简单工厂吧

用java语法大概是:抽象产品 产品 = 具体工厂 . 工厂方法(参数告诉工厂要生产什么);---->这样就获取产品了

2>具体 工厂方法 和上面差不多 有一个抽象工厂 一个抽象产品 n多具体产品

不同的是 额外增加了 具体工厂 具体工厂干什么呢

具体工厂 实现抽象工厂的产品加工方法(也就是实现抽象工厂的接口)

一个具体工厂 对应 一个具体产品 一对一的生产

用java语法大概是:

抽象工厂 工厂 = new 具体工厂();

抽象产品 产品 = 工厂.方法();------> 这样就获取产品了

3>抽象工厂方法 和工厂方法类似

不同的是 抽象工厂方法 的抽象工厂 不止一个抽象工厂方法

比如 同样是加工产品 比如这个厂子不单一生产一类产品了

原来只生产 水果 现在还生产 蔬菜

抽象工厂 里就有 2个抽象 方法 一个蔬菜一个水果

比如生产 南方水果和南方蔬菜 就有

(一个抽象工厂 2个具体工厂(南北) 蔬菜抽象 水果抽象 具体蔬菜(南北) 具体水果(南北))

抽象工厂 工厂 = new 具体南方工厂();

南方水果抽象 水果 = 工厂.水果(); 南方蔬菜抽象 蔬菜 = 工厂.蔬菜();//北方一样

---------------现在我才疑惑

比如我要做个 添加数据的功能 如果这么写

--------------如果把表设计成类似下面这样

产品名称 产品类型1 类型2

香蕉 水果类 南方

苹果 水果类 北方

白菜 蔬菜类 北方

茄子 蔬菜类 南方

然后定义 1个 bean

名称字段 类型字段

然后 录入的时候 直接保存在数据库里 就行了

然后查询的时候 要产品 就用sql根据条件 查询这个表 不管南北 菜果 不都能查出来

然后方法哦 定义好的实体里 ,数据不就出来了吗

------------------那么如果用 工厂模式 去定义类

比如添加 一个产品记录

从页面传过来值 然后初步判断 是什么 比如 是南方的水果 那么就用工厂 制作 南方水果类 保存数据然后添加 到数据库

如果查询 这样不就会有很多的 类对应水果产品吗 就算把水果产品的共同属性 放在一个类里 然后装饰这个类构成需要的水果

那样的话 类也会很多,

------所以我不明白.有没有老师能提点下.我想学好OO的,或者是我没描述清楚,我大概就是上面这个意思,可能表达不到位.

请老师帮助帮助.高手赐教,小弟不胜感激

    

mysd76
2009-10-22 10:52

那用模式产生对象,最后数据保存在数据库里 那数据库表又是什么样子的呢.

是不是我的想法的做法全是错误的.谁告诉告诉我一下呀

 System.out.print("来人啊");
<p>

banq
2009-10-22 14:44

>那用模式产生对象,最后数据保存在数据库里 那数据库表又是什么样子的呢

获得一个水果对象流程这样:

数据库数据 ---> 工厂模式 --- > 水果等对象。

保存一个水果的流程

用户输入零散数据 ----> 工厂模式组装成对象 --- >水果对象 --->自己保存到数据库(作为水果的一个方法)

mysd76
2009-10-22 17:17

哦这样啊