zoukankan      html  css  js  c++  java
  • 设计模式开始--工厂模式

    工厂模式

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

    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
  • 相关阅读:
    ssh免密登录
    jdk安装
    jq选择器
    使用<button></button>标签
    mysql连接字符串
    如何把maven项目转成web项目
    pl/sql连接远程oracle
    Oracle 存储过程
    SQL Server存储过程
    MySQL存储过程
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4370208.html
Copyright © 2011-2022 走看看