• 设计模式开始--工厂模式


    工厂模式

    设计模式原则:业务和逻辑分离,业务主要表现在主程序中,分离之后,逻辑改变了,业务部分修改的代码要求最小,业务改变了,争取不影响逻辑部分的代码。

    1、作用:实例化对象,同时为了增加可扩展性,用户看到的只是接口和抽象类,接口代表的是产品,抽象类是工厂。

    2、类图:

    3、类图实现

    产品:

    (1)接口

    public interface ICar {
        public void createCar();
    }
    View Code

    (2)三个实现类实现结构 top mid low

    public class LowCar implements ICar {
    
        @Override
        public void createCar() {
            // TODO Auto-generated method stub
            System.out.println("low car");
        }
    
    }
    public class MidCar implements ICar {
    
        @Override
        public void createCar() {
            // TODO Auto-generated method stub
            System.out.println("mid car");
        }
    
    }
    public class TopCar implements ICar {
    
        @Override
        public void createCar() {
            // TODO Auto-generated method stub
            System.out.println("top car");
        }
    
    }
    View Code

    (3)抽象工厂 AbstracFactory

    public abstract class AbstractFactory {
        public abstract ICar create();
    }
    View Code

    (4)三个实现类 继承抽象工厂 top mid low

    public class LowCarFactory extends AbstractFactory {
    
        @Override
        public ICar create() {
            // TODO Auto-generated method stub
            return new LowCar();
        }
    
    }
    public class MidCarFactory extends AbstractFactory {
    
        @Override
        public ICar create() {
            // TODO Auto-generated method stub
            return new MidCar();
        }
    
    }
    public class TopCarFactory extends AbstractFactory {
    
        @Override
        public ICar create() {
            // TODO Auto-generated method stub
            return new TopCar();
        }
    
    }
    View Code

    (5)测试类 分别使用->(实线)只调用接口和抽象类

    public class User {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            AbstractFactory factory = new TopCarFactory();
            ICar car = factory.create();
            car.createCar();
        }
    
    }
    View Code
  • 相关阅读:
    预览上传
    使用 Vagrant 打造跨平台开发环境fffff
    使用 Vagrant 打造跨平台开发环境
    弱智python小游戏猜数字
    Linux设置固定IP
    call_user_func
    mongodb 下载安装 转
    chrome浏览器下的xdebug helper使用方法
    类似NL的update更新
    如何启用并行?
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4370208.html
Copyright © 2020-2023  润新知