package com.a; /** * @author 夜灬瞬 * @date 2021年12月08日 9:45 */ public class Test15 { public static void main(String[] args) { Ren p = new Ren("唐僧",VehiclesFactory.getHorse()); p.riddingHorse(); Ren p1 = new Ren("唐僧",VehiclesFactory.getBoat()); p1.passReviver(); } } interface Vehicles{ void work(); } class Horse implements Vehicles{ @Override public void work() { System.out.println("骑马"); } } class Boat implements Vehicles{ @Override public void work() { System.out.println("坐船"); } } class VehiclesFactory{ public static Horse getHorse(){ return new Horse(); } public static Boat getBoat(){ return new Boat(); } } class Ren{ private String name; private Vehicles vehicles; public String getName() { return name; } public void setName(String name) { this.name = name; } public Vehicles getVehicles() { return vehicles; } public void setVehicles(Vehicles vehicles) { this.vehicles = vehicles; } public Ren(String name,Vehicles vehicles){ this.name = name; this.vehicles = vehicles; } public void riddingHorse(){ /** * 判断 此时的交通工具是什么 */ if (vehicles instanceof Horse){ vehicles = VehiclesFactory.getHorse(); } System.out.print(name); vehicles.work(); } public void passReviver(){ /** * 判断 此时的交通工具是什么 */ if (vehicles instanceof Boat){ vehicles = VehiclesFactory.getBoat(); } System.out.print(name); vehicles.work(); } }
有一个交通工具接口类Vehicles,有work接口方法,有Horse类和Boat类分别实现Vehicles,创建交通工具工厂类,有两个方法分别获得交通工具Horse和Boat;有Person类,有
最新推荐文章于 2022-12-02 14:15:28 发布