在调用类对象的属性和方法时,尽量避免将具体类对象作为传递参数,而应传递其抽象对象,更好地是传递接口,将实际的调用和具体对象完全剥离开
这句话应该怎么理解呢

解决方案 »

  1.   

    面向对象的一个原则,针对抽象编程,而不是针对实现编程。
    可以考虑看下微软.NET中实现的DBConnection 等一系列对象的实现方式。
    每次传递的都是ADO.NET中的基类,数据库访问的抽象类。
    但是我们实际用的时候,肯定都是确认的数据库,Access,Sql server ,DB2等。
    但是DBConnection 作为参数传递有什么好处呢? 
    数据库发生变化的时候,查询等操作的代码不用更改。只是在创建数据库连接的时候,将创建的数据库连接,
    假如由原来的OLEDBConnection,变成SqlConnection。这个以后自己写代码写多了,看看别人的框架,就会明白针对接口编程,有什么好处。