三个工场

简单工场模式

package haohao;
public abstract class Person {
    public void run(){}
    public void eat(){}

}


package haohao;
public class Nvwa {
    public static Person getPerson(String people){
       Person APerson=null; 
        if(people.equalsIgnoreCase("M")){
            APerson = new Man();
        }else if(people.equalsIgnoreCase("W")){
            APerson = new Woman();
        }else if(people.equalsIgnoreCase("R")){
            APerson = new Robot();
        }
        return APerson;
    }
}
  package haohao;


public class Man extends Person{

    public void eat() {
        System.out.println("男人潇洒吃..");
        super.eat();
    }
    public void run() {
        System.out.println("男人漂亮吃..");
        super.run();
    }
}
package haohao;
public class Robot extends Person{
    
    public void eat() {
        System.out.println("机器人吃..");
        super.eat();
    }
   
    public void run() {
        System.out.println("机器人跑步..");
        super.run();
    }
}
package haohao;


public class Woman extends Person{
    public void eat() {
        System.out.println("女人吃东西..");
        super.eat();
    }
    public void run() {
        System.out.println("女 人跑步..");
        super.run();
    }
}
package haohao;


public class NvwaMakePerson {
    public static void main(String[] args) {
        Person APerson;
        APerson = Nvwa.getPerson("M");  //女娲造男人
        APerson.eat();  
        APerson = Nvwa.getPerson("W"); //女娲造女人
        APerson.eat();  
        APerson = Nvwa.getPerson("R"); //女娲造机器人
        APerson.eat();  
    }
}

工场方法模式

package haohao;
//空调基类
abstract class AirCondition{
public abstract void show();
}
//工厂基类
abstract class Factory{
public abstract AirCondition getAirCondition();
}
//继承空调基类的海尔空调类
class HaierAirCondition extends AirCondition{
public void show(){
System.out.println("生产Haier空");
}
//继承空调基类的美的空调类
class MideaAirCondition extends AirCondition{
public void show(){
System.out.println("生产了Midea空调");
}
}
//继承工厂基类的海尔工厂类
class HaierFactory extends Factory{
public AirCondition getAirCondition(){
return new HaierAirCondition();
}
}
//继承工厂基类的美的工厂类
class MideaFactory extends Factory{
public AirCondition getAirCondition(){
return new MideaAirCondition();
}
}
public static class TestFactory {
	public static void main(String[] args) {
		  AirCondition aircondition;//定义抽象基类
		HaierFactory haierfactory=new HaierFactory();//海尔工厂对象
		aircondition=haierfactory.getAirCondition();//抽象空调基类对象指向由海尔工厂生产的海尔空调对象
		aircondition.show();//调用海尔空调类中实现的show方法
		MideaFactory mideafactory=new MideaFactory();//美的工厂对象
		aircondition=mideafactory.getAirCondition();//抽象空调基类对象指向由美的工厂生产的美的空调对象
		aircondition.show();//调用美的空调类中实现的show方法
		  
		}

}

 

抽象工程模式

package chouxiang;
//RAM抽象基类
abstract class RAM{
public abstract void show();
}
//CPU抽象基类
abstract class CPU{
public abstract void show();
}
//工厂抽象基类
abstract class Plant{
public abstract RAM getRam();
public abstract CPU getCpu();
}
//继承RAM基类的PcRAM子类
class PcRAM extends RAM{
public void show(){
System.out.println(“生产了PcRAM”);
}
}
//继承RAM基类的MacRAM子类
class MacRAM extends RAM{
public void show(){
System.out.println(“生产了MacRAM”);
}
}
//继承CPU基类的PcCPU子类
class PcCPU extends CPU{
public void show(){
System.out.println(“生产了PcCPU”);
}
}
//继承CPU基类的MacCPU子类
class MacCPU extends CPU{
public void show(){
System.out.println(“生产了PcCPU”);
}
}
//继承Plant工厂基类的PcPlant子类
class PcPlant extends Plant{
public RAM getRam(){
return new PcRAM();
}
public CPU getCpu(){
return new PcCPU();
}
}
//继承Plant工厂基类的MacPlant子类
class MacPlant extends Plant{
public RAM getRam(){
return new MacRAM();
}
public CPU getCpu(){
return new MacCPU();
}
}
//具体实现类
public class TestAbstractFactory {
public static void main(String[] args){
RAM ram;//RAM抽象基类对象
CPU cpu;//CPU抽象基类对象
PcPlant pcfactory=new PcPlant();//PcPlant工厂子类对象
MacPlant macfactory=new MacPlant();//MacPlant工厂子类对象
ram=pcfactory.getRam();//RAM抽象基类对象指向PcPlant工厂子类对象生产的PcRAM对象
ram.show();//调用子类已实现方法
cpu=pcfactory.getCpu();//CPU抽象基类对象指向PcPlant工厂子类对象生产的PcCPU对象
cpu.show();//调用子类已实现方法
ram=macfactory.getRam();//RAM抽象基类对象指向MacPlant工厂子类对象生产的MacRAM对象
ram.show();//调用子类已实现方法
cpu=macfactory.getCpu();//CPU抽象基类对象指向MacPlant工厂子类对象生产的MacCPU对象
cpu.show();//调用子类已实现方法
}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值