统一接口调用的总结

统一接口分为两个层面。

一.类层面的统一调用

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

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

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

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 }

只是对类包装了一下,就可以很直接知道底层对上层开放了多少接口了。
也可以使用装饰模式对业务层进一步封装.
原文地址:https://www.cnblogs.com/yuanhuaming/p/1624774.html