• 统一接口调用的总结


    统一接口分为两个层面。

    一.类层面的统一调用

    通过接口或者抽象类,让继承类都具有父类的规则或者基本特性。就是书中常说的要面向接口编程。我觉得有很多资深开发人员,都存在一种滥用或者可以说是理论派。

    首先我们要理解为什么要面向接口编程?【个人理解,仅供参考】

    其中有一个很重要的原因就是应对需求变更。

    1.需求频繁变更可能会导致接口一改再改,那接口的意义何在?所以面向接口编程一定要在需求相对稳定的项目中实行。

    2.比如Country国家这个模块。基本上不会变更,那为什么还要对Country作约束么?

    所以我很反感IXXXDAO和IXXXService,因为根本就没有解决需求变更的问题,大多仅仅是为了IOC注入使用而已,有点为了框架而code的感觉。

    其实我一直在面向对象和面向过程之间徘徊,试图找到一个通用的最佳方案。如果从哲学的角度去考虑问题,根本不存在最佳方案。事物都具有两面性。就像面向对象的几个原则,它们本身就是相互对立的。所以我们要从实际出发,解决现阶段和可预计阶段的问题。

    我遵循的设计准则就是:如何有效提高开发人员的生产效率;尽可能考虑核心业务的需求变更点。后期通过重构来提高程序的可维护性和扩展性。从而达到一个相对的平衡点。

    二.层之间的统一调用

    为什么要统一层之间的调用?

    在分层开发的时候。层与层之间的调用就成了一个很大的问题。开发人员必须清楚底层对外的接口。

    完善的文档与及时的沟通固然重要,但是我们还可以通过以下方式实现对外接口的提示。

    让我们来看一下如何实现,或许您的项目早就类似这样实现了。

        public class Creater
        {
            private CustomerBiz _customer;
            public   CustomerBiz Customer
            {
                get
                {
                    if (_customer ==null)
                    {
    10                       _customer =  new CustomerBiz();
    11                 }
    12                 return _customer;
    13             }
    14         }
    15     }

    我们在客户端调用的时候就可以这样调用

    1 public void main()
    2 {
    3     Creator  creator = new Creator();
    4     creator.Customer.GetCustomer();
    4     creator.Member.GetMember();
    5 }

    只是对类包装了一下,就可以很直接知道底层对上层开放了多少接口了。
    也可以使用装饰模式对业务层进一步封装.
  • 相关阅读:
    [CF1106E] 边界有问题
    UOJ 67 新年的毒瘤
    BZOJ 1093 [ZJOI2007]最大半连通子图
    codeforces round#510
    codeforces round#509
    杂谈
    BZOJ 3007 [SDOI2012]拯救小云公主
    BZOJ 1799
    BZOJ 3329
    BZOJ 3209 花神的数论题
  • 原文地址:https://www.cnblogs.com/yuanhuaming/p/1624774.html
Copyright © 2020-2023  润新知