面向接口编程 --对象的三种依赖

面向接口编程 --对象的三种依赖

模块间的依赖通过抽象来发生,实现类之间不应该有直接的依赖关系,依赖关系通过接口或抽象类来产生, 即面向接口编程。通过面向接口编程,当业务逻辑发生变化时,只需要修改业务场景的客户端调用类,不要修改低层的模块,降低维护成本,减少风险产生。

接口依赖注入:

驾驶员接口及实现类

public interface IDriver {

public void driver(ICar car);

}

public class Driver  implements IDriver{

@Override

public void driver(ICar car) {

// TODO Auto-generated method stub

car.running();

}

}

汽车接口及实现类

public interface ICar {

public void running();

}

public class BMW implements ICar {

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("宝马行驶..");

}

}

public class Benz implements ICar {

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("奔驰行驶..");

}

}

场景客户端调用

public class Benz implements ICar{

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("奔驰行驶");

}

}

构造器依赖注入:

驾驶员接口及实现类

public interface IDriver {

public void drive();

}

public class Driver  implements IDriver{

private ICar car;

public Driver(ICar _car) {

this.car = _car;

}

@Override

public void drive() {

// TODO Auto-generated method stub

car.running();

}

}

汽车接口及实现类

public interface ICar {

public void running();

}

public class BMW implements ICar {

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("宝马行驶..");

}

}

public class Benz implements ICar {

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("奔驰行驶..");

}

}

场景客户端调用

public class Client {

public static void main(String[] args) {

IDriver driver = new Driver(new Benz());

driver.drive();

}

}

Setter依赖注入:

驾驶员接口及实现类

public interface IDriver {

public void drive();

public void setCar(ICar car);

}

public class Driver implements IDriver {

private ICar car;

@Override

public void drive() {

// TODO Auto-generated method stub

car.running();

}

public ICar getCar() {

return car;

}

public void setCar(ICar _car) {

this.car = _car;

}

}

汽车接口及实现类

public interface ICar {

public void running();

}

public class BMW implements ICar {

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("宝马行驶..");

}

}

public class Benz implements ICar {

@Override

public void running() {

// TODO Auto-generated method stub

System.out.println("奔驰行驶..");

}

}

场景客户端调用

public class Client {

public static void main(String[] args) {

IDriver driver = new Driver();

driver.setCar(new Benz());

driver.drive();

}

}

时间: 2024-10-23 13:14:21

面向接口编程 --对象的三种依赖的相关文章

java:Hibernate框架(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态)

1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件  准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configurati

获取class对象的三种方法以及通过Class对象获取某个类中变量,方法,访问成员

public class ReflexAndClass { public static void main(String[] args) throws Exception { /** * 获取Class对象的三种方式 * 1 Object --> getClass(); * 2 任何数据类型(包括基本数据类型)都有一个静态的class属性 * 3 通过Class类的静态方法:forName(String className)(常用) * * * 注意:在运行期间,一个类,只有一个Class对象产

关于hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate().lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hibernate的

hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有 三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate(). get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate(). lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hiberna

Hibernate对象的三种状态

hibernate中对象的状态有三种:临时态(Transient).持久态(Persistent)和游离态(Detached),三种状态转化的方法都是通过session来调用的,处于三种状态下的对象所具有的特点,总结如下: 临时态:没有被session管理 在数据库中没有与之匹配的记录; 持久态:纳入session管理 在数据库中有与之匹配的记录 当属性发生变化,在清理缓存时(脏数据检查)会自动和数据库同步; 游离态:没有被session管理 在数据库中存在与之匹配的记录. 临时态到持久态的方法

js---window对象的三种窗口

============================================================================ window对象的三种窗口.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <script type="text/jav

Hibernate持久化对象的三种状态

在Hibernate中,持久化对象在被操作的过程中可以分为三个时期,这三个时期是和Session的周期相关的,因为Hibernate中的操作都是基于Session完成的.Session的特定方法能使对象从一个状态转换到另一个状态. 持久化对象的生命周期有三种,瞬时状态.持久状态和分离状态.如下图: 瞬时态 不曾进行持久化,未与任何Session相关联.此状态的对象是用new关键字创建出来的,此时对象没有和数据库中记录对应. //Transient状态 Useruser = new User();

对象的三种状态

三种状态的区别在于: 有没有ID,ID在数据库中有没有,在内存中有没有(session缓存) 三种状态 Transient:内存中的一个对象,没有ID,缓存中也没有 Persistent:内存中有,缓存中有,数据库中有ID Detached:内存中有,缓存中没有,数据库有ID 对象的三种状态

Hibernate复习(五)对象的三种状态和缓存机制

#include <iostream> #include <cmath> using namespace std; class Point { public: Point(double x=0,double y=0); void setPoint(double,double); double getx() { return x; } double gety() { return y; } void display(); protected: double x,y; }; class