• 解读Petshop3.2用Nhibernate重构系列(二)


    他的架构
    DAO
    BLL
       Entity   IDAO
    Web
    我个人觉得应该把BLL的IDAO给单独剥离出来作为一个项目。这样层次结构会清晰一些。

    DAO实现IDAO的接口。BLL包含实体类,和相应的业务逻辑类,外加一个对象工厂类。
            public bool SignIn(){
                
    // Validate input
                if ((UserId.Trim() == string.Empty) || (Password.Trim() == string.Empty)) return false;

                
    // Try to sign in with the given credentials
                return ((ISignOnDAO)ObjectFactory.GetInstance("SignOnDAO")).SignIn(this);
            }
    如上方法,展示了SignOn对象如何登陆系统。
    用对象工厂去获取DAO的实例,然后转化成借口,并且调用相应的登陆方法。


    而对象工厂
    using System;
    using System.Web;
    using Spring.Context;
    using Spring.Context.Support;

    namespace PetShop.BLL{
        
        
    public class ObjectFactory{
            
            
    private static IApplicationContext ctx;

            
    static ObjectFactory() {
                    ctx 
    = new XmlApplicationContext( "assembly://PetShop.DAO/PetShop/objects.xml" );
            }


            
    public static Object GetInstance(string name) 
                
    return ctx.GetObject(name);
            }

        }

    }

    也使用了一个静态的构造函数,来初始化PetShop.DAO项目的PetShop.objects.xml文件,已经初始化这些类。
    还有一个静态的方法来返回依据名称而对应的对象。
    使用了Sprint.net

  • 相关阅读:
    CSUOJ 1081 集训队分组
    HDU 1865 More is Better
    HDU 1325 Is It A Tree?
    HDU 1272 小希的迷宫
    CSUOJ 1217 奇数个的那个数
    CSUOJ 1010 Water Drinking
    CSUOJ 1162 病毒
    CodeForces 295B
    CodeForces 20C
    SPOJ MULTQ3
  • 原文地址:https://www.cnblogs.com/wildfish/p/117195.html
Copyright © 2020-2023  润新知