A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

两个石头磨成石刀。
这个句子 张老师的实现是 StoneKnife stoneKnife= stoneKnifeFactory.create(Stonestone1,Stone stone2)。张老师在这个句子的实现中多增加了一个中间层,stoneKnifeFactory。我有些疑问。这个中间类的作用不就是构造器的作用吗?用一个构造方法是不是更好呢?StoneKnife stone = StoneKnife(Stone s1,Stone s2)。这样可以省略了一个类。是不是更符合题意呢?

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1

查看全部评分

3 个回复

倒序浏览
黄健 黑马帝 2011-11-10 23:25:14
沙发
个人认为还是工厂比较好,stoneKnifeFactory.create(Stonestone1,Stone stone2)中体现了题目中的三点
接受原材料:石头
进行加工:磨
返回成品:石刀

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在java中,new本身就是生成对象的意思。
接受原材料:stone
进行加工:new(代替stoneKnifeFactory.create)
返回成品:stoneknife
如果按老师的写法,要创建3个类。
按我的写法,写两个类。
在题目“两个石头磨成石刀”这句话中,石头和石刀是两个名词,两个名词对应两个类,一个动词对应一个构造方法,我想用最简单的思维去应对现实中的问题。我这么写是按这个规则来的。
如果写成了3个类,是不是说每个对应的动词都由必要对应一个产生这个动作的场所呢?
       按这个规则的话,第二句,“石刀砍树”就可以写成 material mtl = materialfactory.creat(stoneknife ,tree);这样的话,这句话就增加了两个对象。实际上完整的语句就成了“树被石刀在工厂里加工成了材料”。这算不算换了题目?
      
回复 使用道具 举报
石刀砍树。
老师的实现好像是 material mtl = stoneknife.cut(tree);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马