通过内部类实现工厂模式。
//Service接口
interface Service {
void method1();
void method2();
}
//创建Service的工厂接口
interface ServiceFactory {
Service getService();
}
//Service实现
class Implementation1 implements Service {
private Implementation1() {
}
public void method1() {
System.out.println("implements1 method1");
}
public void method2() {
System.out.println("implements1 method2");
};
//自己包含工厂
public static ServiceFactory factory = new ServiceFactory(){
public Service getService(){
return new Implementation1();
}
};
}
class Implementation2 implements Service {
private Implementation2() {
}
public void method1() {
System.out.println("implements2 method1");
}
public void method2() {
System.out.println("implements2 method2");
};
public static ServiceFactory factory = new ServiceFactory(){
public Service getService(){
return new Implementation2();
}
};
}
class Factories {
public static void serviceConsumer(ServiceFactory fact) {
Service s = fact.getService();
s.method1();
s.method1();
}
public static void main(String[] args){
serviceConsumer(Implementation1.factory);
serviceConsumer(Implementation2.factory);
}
}
分享到:
相关推荐
Java内部类是Java编程语言中的一个特色特性,它允许在一个类的定义内部定义另一个类。这种设计模式在处理一些特定的复杂情况时非常有用,比如实现事件监听、封装临时对象或者创建私有辅助类等。以下是对Java内部类的...
- **适配器模式(Adapter)**:将一个类的接口转换成客户希望的另一个接口。 - **装饰器模式(Decorator)**:动态地给一个对象添加一些额外的职责。 - **桥接模式(Bridge)**:将抽象部分与它的实现部分分离,...
- **抽象工厂模式**:提供一个接口,用于创建相关或依赖对象的族,而无需指定它们具体的类。 - **优点**:可以创建一系列相关或相互依赖的对象,而无需指定它们的具体类。 - **应用场景**:当一个系统需要独立于...
- 抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 - 建造者模式(Builder):将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 ...
- 解剖模式:将类的接口转换为客户期望的另一种接口。 3. 行为型模式(Behavioral Patterns): - 责任链模式:避免将请求的发送者和接收者耦合在一起,而是将多个处理者链接在一起。 - 命令模式:将请求封装为...
- **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。在Java中,通过创建工厂接口和多个实现这些接口的具体工厂类来实现。 - **建造者模式**:将复杂对象的构建与其表示...
2. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。它允许更换产品族,提供了更大的灵活性。 3. **建造者模式**:将复杂对象的构建与其表示分离,使得同样的构建过程可以...
3. **抽象工厂模式(Abstract Factory)**:提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。 4. **建造者模式(Builder)**:将一个复杂对象的构建与其表示分离,使得同样的构建过程...
在Java EE开发中,设计模式的应用尤为重要,如在MVC框架中,就大量使用了观察者模式、策略模式和工厂模式等。通过学习和熟练运用这些设计模式,开发者可以提高代码质量,降低系统复杂性,同时提升团队协作效率。
Java内部类是Java编程语言中一个独特且强大的特性,它允许在一个类的定义内部定义另一个类。这样的类可以是成员内部类、局部内部类、匿名内部类或静态内部类,每种都有其特定的用途和规则。让我们深入探讨这些内部类...
Java设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,可以提高代码的可重用性、可维护性和灵活性。本资源“java23种设计模式集合”提供了一个全面的Java设计模式Demo大全,涵盖了面向对象...
3. 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。 4. 建造者模式:将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。 5. 原型模式:通过复制已有...
- **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,无需指定它们的具体类。 - **建造者模式**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - **单例模式**:...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的经验总结和最佳实践。本资源包含了23种经典的设计模式,这些模式在Java编程中具有广泛的适用性,能够帮助开发者写出更加灵活、可维护和可...
Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决问题的经验总结,可以提高代码的可读性、可维护性和可复用性。这些模式是面向对象编程中的一种最佳实践,通过标准化的方式处理常见的设计问题。下面...
6. 适配器模式(Adapter):把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。例如,在朋友聚会上碰到了一个美女 Sarah,从香港来的,但我不会说粤语...
内部类是Java中的一种特性,它允许在一个类的内部定义另一个类。根据定义的位置,内部类可以分为四种类型:成员内部类、局部内部类、静态内部类和匿名内部类。 1. **成员内部类** - 成员内部类就如同外部类的成员...
- 抽象工厂模式:提供一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。 - 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - 单例模式:确保一个类...
- 抽象工厂模式(AbstractFactoryPattern):提供一个接口用于创建相关或依赖对象的家族,而不需要明确指定具体类。 - 门面模式(FacadePattern):提供一个统一的接口,用来访问子系统中的一群接口。 - 适配器...