/**
* 车运行的接口
*/
public interface Car {
void run();
}
/**
* 奥迪车运行实现类
*/
public class Audi implements Car {
@Override
public void run() {
System.out.println("奥迪在跑。。。");
}
}
/**
* 比亚迪车运行实现类
*/
public class Byd implements Car {
@Override
public void run() {
System.out.println("比亚迪在跑。。。");
}
}
简单工厂类1(也称静态工厂)
java复制代码
/**
* 简单工厂类1(也称静态工厂)
* @author Administrator
*
*/
public class CarFactory {
public static Car createCar(String type){
if("奥迪".equals(type)){
return new Audi();
}else if("比亚迪".equals(type)){
return new Byd();
}else{
return null;
}
}
}
/**
* 简单工厂类调用
* @author admin
*/
public static void main(String[] args) {
Car c1= CarFactory.createCar("奥迪");
Car c2= CarFactory.createCar("比亚迪");
c1.run();
c2.run();
}
简单工厂类2(也称静态工厂)
java复制代码
/**
* 简单工厂类2(也称静态工厂)
* @author Administrator
*
*/
public class CarFactory {
public static Car createAudi(){
return new Audi();
}
public static Car createByd(){
return new Byd();
}
}
/**
* 简单工厂类实现
* @author admin
*/
public static void main(String[] args) {
Car c1= CarFactory.createAudi();
Car c2= CarFactory.createByd();
c1.run();
c2.run();
}
2.工厂方法模式
代码实现
类和接口
java复制代码
/**
* 车运行的接口
*/
public interface Car {
void run();
}
/**
* 奥迪车运行实现类
*/
public class Audi implements Car {
@Override
public void run() {
System.out.println("奥迪在跑。。。");
}
}
/**
* 比亚迪车运行实现类
*/
public class Byd implements Car {
@Override
public void run() {
System.out.println("比亚迪在跑。。。");
}
}
工厂方法模式接口
java复制代码
/**
* 工厂方法模式接口
*/
public interface CarFactory {
Car CreateCar();
}
/**
* 工厂方法模式接口实现类
*/
public class BydFactory implements CarFactory {
@Override
public Car CreateCar() {
return new Byd();
}
}
/**
* 工厂方法模式接口方法的重写
*/
public class AudiFactory implements CarFactory {
@Override
public Car CreateCar() {
return new Audi();
}
}
工厂方法模式调用
java复制代码
/**
* 方法工厂模式实现类
*/
public static void main(String[] args) {
//new AudiFactory().CreateCar().run();
Car c=new AudiFactory().CreateCar();
c.run();
}
3.抽象工厂模式
代码实现
类和接口
java复制代码
/**
* 座椅接口
*/
public interface Seat {
void massage();
}
/**
* 高端座椅
*/
class LuxurySeat implements Seat{
@Override
public void massage() {
System.out.println("高端座椅可以按摩。。。。。");
}
}
/**
* 低端座椅
*/
class LowySeat implements Seat{
@Override
public void massage() {
System.out.println("低端座椅不能按摩。。。。。");
}
}
java复制代码
/**
* 轮胎接口
*/
public interface Tyre {
void revolve();
}
/**
* 高端轮胎
*/
class LuxuryTyre implements Tyre{
@Override
public void revolve() {
System.out.println("不会磨损。。。。");
}
}
/**
* 低端轮胎
*/
class LowTyre implements Tyre{
@Override
public void revolve() {
System.out.println("磨损快。。。。。");
}
}
java复制代码
/**
* 引擎接口
*/
public interface Engine {
void run();
void start();
}
/**
* 高端引擎
*/
class LuxuryEngine implements Engine{
@Override
public void run() {
System.out.println("速度快。。。。。。");
}
@Override
public void start() {
System.out.println("启动快,。。。。。。");
}
}
/**
* 低端引擎
*/
class LowyEngine implements Engine{
@Override
public void run() {
System.out.println("速度慢。。。。。。");
}
@Override
public void start() {
System.out.println("启动慢,。。。。。。");
}
}
抽象工厂接口和实现类
java复制代码
/**
* 汽车工厂
*/
public interface CarFactory {
Engine createEngine(); //创建引擎
Seat createSeat(); //座椅
Tyre createTyre(); //轮胎
}
/**
* 低端汽车
*/
public class LowCarFactory implements CarFactory {
@Override
public Engine createEngine() {
return new LowyEngine();
}
@Override
public Seat createSeat() {
return new LowySeat();
}
@Override
public Tyre createTyre() {
return new LowTyre();
}
}
/**
* 高端汽车
*/
public class LuxuryCarFactory implements CarFactory{
@Override
public Engine createEngine() {
return new LuxuryEngine();
}
@Override
public Seat createSeat() {
return new LuxurySeat();
}
@Override
public Tyre createTyre() {
return new LuxuryTyre() ;
}
}