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
  • 相关阅读:
    HDU Number Sequence
    HDU Wolf and Rabbit
    HDU Fire Net
    C# QQ weather
    Jquery 随窗口改变大小不会影响浏览位置,DIV可以在绝对的位置不变.菜单相对位置不变
    C# 验证中国电话号码,电子邮件,网址,身份证号码等等
    C# Image Download
    Csharp 两个DataTable或DataView互换,可以用来加密解密
    C# Windows Forms TreeView SelectedNode(VS2008)
    C# 获取源代码
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4370208.html
Copyright © 2011-2022 走看看