首页 > 其他 > 详细

软件分层架构下的另类设计框架-工厂模式的使用

时间:2014-02-13 02:47:19      阅读:409      评论:0      收藏:0      [点我收藏+]

软件分层的原因

    面向对象原理中,有多态,继承等相关概念。为了提高程序的“高内聚、低耦合”。也为了更容易扩展,容易维护,同时适应程序的延展性能,开始产生了分层的概念。

现有常见设计模式

  • 普通三层架构

User Interface 表示层

  与用户展示界面交互,提供数据内容

Business   Logic   Layer,数据层

  用于给表示层提供数据内容,对数据运算和操作,同时也负责响应表示层的事件。

Data Access Layer 数据访问层

  直接操作数据库,针对数据的增添、删除、修改、查找等。

bubuko.com,布布扣

  • MVC

  模型(Model):就是封装数据和所有基于对这些数据的操作。
  视图(View):就是封装的是对数据显示,即用户界面。
  控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。

 bubuko.com,布布扣

使用工作方法构建我们自己的应用框架

这将会是一个新颖的设计架构模式,在整体上运算和逻辑上拆分,每个运算模块只负责相应的数据。分成三个逻辑运算,读取,运算,输出。这个优势在于每个模块只做一部分功能,不会影响其他功能,以提高代码复用率,降低耦合度;更加有利于扩展调配。例如我们可以派生多个子类运算,子类运算可配置为并发或顺序运行。

 bubuko.com,布布扣

工厂方法接口

输入

bubuko.com,布布扣
  /// <summary>
    /// 用户读取配置和数据库文件等
    /// </summary>
    public class Input
    {
        public event Action OnReadFinished;

        public virtual void ReadConfig()
        {
            if (OnReadFinished != null)
                OnReadFinished();
        }
    }
Input

计算

bubuko.com,布布扣
 /// <summary>
    /// 负责运算过程
    /// </summary>
    public class Function
    {
        public event Action OnCalcFinished;

        public virtual void Calculate()
        {
            if (OnCalcFinished != null)
                OnCalcFinished();
        }
    }
Calculate

输出

bubuko.com,布布扣
/// <summary>
    /// 负责输出操作
    /// </summary>
    public class Output
    {
        public virtual void Write()
        { 
        }
    }
Output

 

接口的继承

继承于输入接口

bubuko.com,布布扣
  public class InputTest : Moudle.Input.Input
    {   
        public override void ReadConfig()
        {
            base.ReadConfig();
        }
    }
InputTest

继承于计算接口

bubuko.com,布布扣
 public class FunctionTest:Module.Function.Function
    {
        public override void Calculate()
        {
            base.Calculate();
        }
    }
CalculateTest

继承于输出接口

bubuko.com,布布扣
public class OutputTest:Module.Output.Output
    {
        public override void Write()
        {
            base.Write();
        }
    }
OutputTest

 

接口的调用

 

bubuko.com,布布扣
 static void Main(string[] args)
        {
            Input input = new InputTest();
            input.OnReadFinished += new Action(input_OnReadFinished);
            input.ReadConfig();
        }

        static void input_OnReadFinished()
        {
            Function function = new FunctionTest();
            function.OnCalcFinished += new Action(function_OnCalcFinished);
            function.Calculate();
        }

        static void function_OnCalcFinished()
        {
            Output output = new OutputTest();
            output.Write();
        }
Dispatch

 

通过以上内容,实现了自定义的一个框架模式,在一个完整项目周期中,我们可以按照不同的需求派生出子类实现不同的业务。

软件分层架构下的另类设计框架-工厂模式的使用

原文:http://www.cnblogs.com/yzp12sina/p/3546322.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!