写这篇文章 是我对匿名类以及抽象工厂的一个理解...觉得有所启发就写了下来..希望大家能够一起学习...
抽象工厂类
package com.chusiyou.factory;
public abstract class Factory {
public abstract UserDao getUserDao();
public abstract PersonDao getPersonDao();
//获得工厂实例的一个方法
public static Factory getFactory(String dataBaseName)
{
//针对数据库不同而采取不同的JDBC操作
if(dataBaseName.equals("mysql"))
{
return new Factory()
{
public PersonDao getPersonDao() {
// TODO Auto-generated method stub
return new PersonDao()
{
//JDBC代码......
public boolean addPerson(Person person) {
// TODO Auto-generated method stub
return false;
}
public boolean deletePerson(Person person) {
// TODO Auto-generated method stub
return false;
}
};
}
public UserDao getUserDao() {
// TODO Auto-generated method stub
return new UserDao()
{
public boolean addUser(User user) {
// TODO Auto-generated method stub
return true;
}
public boolean deleteUser(User user) {
// TODO Auto-generated method stub
return false;
}
};
}
};
}else if(dataBaseName.equals("orcale"))
{
return new Factory()
{
public PersonDao getPersonDao() {
// TODO Auto-generated method stub
return new PersonDao()
{
public boolean addPerson(Person person) {
// TODO Auto-generated method stub
return false;
}
public boolean deletePerson(Person person) {
// TODO Auto-generated method stub
return false;
}
};
}
public UserDao getUserDao() {
// TODO Auto-generated method stub
return new UserDao()
{
public boolean addUser(User user) {
// TODO Auto-generated method stub
return false;
}
public boolean deleteUser(User user) {
// TODO Auto-generated method stub
return false;
}
};
}
};
}
return null;
}
}
一些别的业务接口 和实体类
package com.chusiyou.factory;
//定义对数据库访问的业务接口
public interface PersonDao {
//删除的操作
public boolean deletePerson(Person person);
//增加的操作
public boolean addPerson(Person person);
}
package com.chusiyou.factory;
//定义对数据库访问的业务接口
public interface UserDao {
public boolean deleteUser(User user);
public boolean addUser(User user);
}
package com.chusiyou.factory;
//实体类
public class Person {
}
package com.chusiyou.factory;
//实体类
public class User {
}
测试类
package com.chusiyou.factory;
public class FactoryTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
User user=new User();
if(Factory.getFactory("Access").getUserDao().addUser(user))
{
System.out.println("增加成功");
}else
{
System.out.println("增加失败");
}
}
}
分享到:
相关推荐
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...
这种类没有名字,通常用于实现接口或者继承抽象类,尤其在事件处理、回调函数以及创建一次性使用的工厂模式时非常有用。标题"匿名内部类代码"指的是探讨如何使用这种技术来编写简洁、高效的代码。 描述中的"the ...
例如,设计模式中的策略模式会使用接口定义策略行为,工厂模式可能利用抽象类作为产品基础,而内部类常用于复杂的组件交互或事件处理。 总结,接口、内部类和抽象类是Java中重要的面向对象设计工具,它们各有特点,...
同样,在实现单例模式时,如果只需要一个实例,匿名内部类可以作为私有静态内部类,提供一个静态工厂方法来创建实例。 总的来说,匿名内部类是Java中一个强大的工具,它允许开发者在不增加过多复杂性的前提下,快速...
- 常见的工厂模式有简单工厂模式、工厂方法模式和抽象工厂模式。 学习内部类和设计模式能够提高代码的复用性、可维护性和灵活性,是成为专业Java开发人员必备的知识点。通过深入理解和实践这些概念,可以编写出...
在实际开发中,匿名内部类可以广泛应用于各种场景,例如事件处理、回调函数、工厂模式等等。因此,熟练掌握匿名内部类的使用是非常重要的。 匿名内部类的使用场景: 1. 实现抽象类:匿名内部类可以用来实现抽象类...
- 匿名内部类:没有名称的内部类,通常用于实现接口或抽象类的快速定义,常见于事件处理和回调机制中。 3. 使用方法 - 成员内部类的使用: - 外部类的非静态方法可以通过创建内部类的实例来访问成员内部类的方法...
此外,内部类也可以用于实现抽象工厂模式,其中每个具体工厂都是外部类的内部类,可以根据需要创建不同的产品。 总之,Java内部类是一种强大的工具,能够提高代码的可读性和复用性,简化复杂设计。理解并熟练掌握...
Java内部类详解 Java内部类是Java语言中的一种编程机制,它允许将一个类定义在另一个类的内部。内部类可以访问外部类的成员变量和成员方法,包括...内部类也可以用于实现一些设计模式,例如工厂模式、抽象工厂模式等。
- 工厂模式:匿名内部类可以简化创建对象的过程。 - 观察者模式:内部类可以作为事件监听器。 9. **注意事项**: - 内部类会增加内存开销,因为每个内部类实例都会隐式包含一个外部类实例的引用。 - 非静态内部...
- **创建型模式**:这类模式关注对象的创建过程,包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。它们提供了创建对象的不同方式,使得代码更加灵活和可扩展。 - **结构型模式**:关注如何组合...
内部类是定义在另一个类内部的类,可以是嵌套内部类(在类的作用域内)、局部内部类(在方法的作用域内)或匿名内部类(不需要显式命名的类)。它们提供了封装和抽象的额外层次,可以在需要时提供更灵活的设计选择。...
设计模式通常分为三类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式),结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)以及行为型模式(如...
通过这些案例,你将学习到如何创建和使用内部类,以及它们在多线程、事件驱动编程、抽象工厂模式等场景下的应用。 总的来说,"Java基础经典案例源码"提供了丰富的实践素材,涵盖了数据处理的基本技巧和内部类的高级...
2. 创建型模式:包括单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。这些模式主要关注对象的创建过程,使得代码更加灵活,易于管理和测试。 3. 结构型模式:包括适配器模式、桥接模式、组合模式、...
1. **创建型模式**:这类模式主要关注对象的创建过程,包括单例模式(Singleton)、工厂模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。例如,单例模式...
3. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 4. **建造者模式**:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。C#中,通过建造者类...
C#中的工厂模式通常通过抽象工厂、简单工厂和工厂方法实现。 3. **建造者模式**:将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。在C#中,可以通过定义多个构建步骤和一个导演类来实现。 ...
3. 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在Java中,可以通过工厂类的继承体系来实现。 4. 建造者模式:将复杂对象的构建与它的表示分离,使得同样的构建过程可以...
创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型模式(11种):策略...