zoukankan      html  css  js  c++  java
  • 设计模式系列(二)-抽象工厂

    【注】本文还有待修改,现在只提供源码 和 简单分析,后续会做详细说明

    1.为什么要使用抽象工厂,一个案例告诉你,对照下面这张图,来看案例

    image

    问题:

    1.UI展示有时候,需要调用业务A,有时候要调用业务B
    2.而业务A,可能使用了MSSQL数据库,也有可能使用了Oracle数据库
    3.不管MSSQL数据层,还是Oracle数据层,他们用到的实体都是一样,且数据库需要的方法也类似

    分析并解决

    1.首先,我们肯定需要一个数据层,那么这个数据层由谁来创建,由谁来调用
    【数据层由数据工厂创建 并 赋值给数据层接口,然后由具体的业务层调用】
    2.而不同数据库,会对应不同的工厂,那我们要使用哪个工厂
    【通过数据工厂父类,再根据配置文件,可以得到我们需要的数据层对象】
    3.然后,我们就需要一个业务层,那么这个业务层由谁来创建,由谁来调用
    【业务层由业务工厂创建 并 赋值 给业务层接口,然后由表示层调用】
    4.而不同业务,会对应不同的工厂,那我们要使用哪个工厂
    【通过业务工厂父类,再根据配置文件,可以得到我们需要的业务层对象】
    5.有了业务层,那么怎么调用呢
    【在表示层,通过业务工厂父类,创建业务工厂对象】
    【再由业务工厂对象,创建业务层对象】
    【最后由业务层对象,调用我们需要的方法 】
    6.得出结论
    【各层都只调用接口,具体实现由工厂来实现】

    2.按照以上 分析,我们就开始写代码,大家可以按照上面分析,以及对照代码,理解一下,不懂的话,欢迎交流

    3.源码地址

    源码下载
    更多精彩内容请看:http://www.cnblogs.com/2star
  • 相关阅读:
    举例一个IO多路复用的C/S例子
    简单介绍协程
    生产者消费者模型
    多进程介绍
    有关多线程(同步锁,递归锁,同步对象,信号量)
    threading多线程模块
    开发一个支持多用户在线的FTP程序
    NTP时间服务器与客户端
    EF之增删改查
    返回新插入的数据的主键ID
  • 原文地址:https://www.cnblogs.com/kimisme/p/4525779.html
Copyright © 2011-2022 走看看