package 抽象工厂;
/**
* 某地区的农产品市场分南方市场和北方市场,分别销售南方和北方的农产品。
* 其中农产品设计水果和素菜两大类,而水果有北方水果(如梨子)和南方水果(如香蕉)之分,
* 蔬菜有北方素菜(如大蒜)和南方蔬菜(如黄瓜)之分。现有客户购买梨子、香蕉各五十斤,大蒜和黄瓜各二十斤,
* 请用代码(基于抽象工厂模式)模拟。
* @author hjy
* @create 2017/10/26
**/
//水果:抽象产品
interface Fruit {
public void display(int i);
}
//南方水果:抽象产品
class SouthFruit implements Fruit {
@Override
public void display(int i) {
}
public Banana getBanana() {
return new Banana();
}
}
//香蕉:南方水果具体产品
class Banana extends SouthFruit {
@Override
public void display(int i) {
System.out.println("购买香蕉" + i + "斤");
}
}
//北方水果:抽象产品
class NorthFruit implements Fruit {
public Pears getPears(){
return new Pears();
}
@Override
public void display(int i) {
}
}
//梨子:北方水果具体产品
class Pears extends NorthFruit {
@Override
public void display(int i) {
System.out.println("购买梨子" + i + "斤");
}
}
//蔬菜:抽象产品
interface Vegetables {
public void display(int i);
}
//南方蔬菜:抽象产品
class SouthVegetables implements Vegetables {
public Cucumber getCucumber() {
return new Cucumber();
}
@Override
public void display(int i) {
}
}
//黄瓜:具体产品
class Cucumber extends SouthVegetables {
@Override
public void display(int i) {
System.out.println("购买黄瓜" + i + "斤");
}
}
//北方蔬菜:抽象产品
class NorthVegetables implements Vegetables {
public Garlic getGarlic(){
return new Garlic();
}
@Override
public void display(int i) {
}
}
//大蒜:具体产品
class Garlic extends NorthVegetables {
@Override
public void display(int i) {
System.out.println("购买大蒜" + i + "斤");
}
}
//市场:抽象工厂
interface MarketFactory {
public Fruit buyFruit();
public Vegetables buyVegetables();
}
//南具体市场:具体工厂
class SouthMarketFactory implements MarketFactory {
@Override
public SouthFruit buyFruit() {
return new SouthFruit();
}
@Override
public SouthVegetables buyVegetables() {
return new SouthVegetables();
}
}
//北具体市场:具体工厂
class NorthMarketFactory implements MarketFactory {
@Override
public NorthFruit buyFruit() {
return new NorthFruit();
}
@Override
public NorthVegetables buyVegetables() {
return new NorthVegetables();
}
}
public class Test2 {
public static void main(String[] args) {
SouthMarketFactory southMarketFactory = new SouthMarketFactory();
NorthMarketFactory northMarketFactory = new NorthMarketFactory();
SouthFruit southFruit = southMarketFactory.buyFruit();
NorthFruit northFruit = northMarketFactory.buyFruit();
NorthVegetables northVegetables = northMarketFactory.buyVegetables();
SouthVegetables southVegetables = southMarketFactory.buyVegetables();
Pears pears = northFruit.getPears();
Banana banana = southFruit.getBanana();
Garlic garlic = northVegetables.getGarlic();
Cucumber cucumber = southVegetables.getCucumber();
pears.display(50);
banana.display(50);
garlic.display(20);
cucumber.display(20);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论

























收起资源包目录


































































共 44 条
- 1
资源评论


gaoxu666666
- 粉丝: 655
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 数控加工工艺与编程综合方案设计书.doc
- 电脑BIOS设置解释.doc
- C国M项目ALU-GSM网络搬迁功率映射总结.doc
- 实践课在中职《计算机组装与维修》课程中的作用.docx
- 一矿井通风系统安全管理.ppt
- 专业评估背景下软件工程教学改革探究.docx
- 数据库运行管理手册.docx
- Java全真案例信息管理系统设计文档.doc
- 计算机教学工作总结汇报.docx
- ASPNET在购物标准系统研发设计方案与实现.doc
- 南通农副产品网络销售发展对策研究.docx
- (源码)基于Arduino的GameCube多控制器适配系统.zip
- 基于SSH框架的水果4S店营销管理系统-包含水果库存管理-会员积分管理-促销活动管理-销售统计分析-供应商管理-财务结算等功能模块-采用Java语言开发-使用Spring5x-H.zip
- 二线城市道路运输也要实现信息化.docx
- 企业网络化信息建设中WEB应用程序最优化思考.doc
- 高校基于互联网推进区域化党建共建的实践探索.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
