public interface Car {
public void start();
public void stop();
}
public class Car_Class implements Car {
private String carname;
int speed;
public String getName(){
return carname;
}
public void setName(String carname){
this.carname = carname;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public void start() {
}
public void stop() {
}
}
public class CAR_CALSS_AUDI extends Car_Class {
public void start(){
System.out.println(this.getName()+"启动了,速度为"+this.getSpeed());
}
public void stop(){
System.out.println(this.getName()+"停止了");
}
}
public class CAR_CALSS_3W extends Car_Class {
public void start(){
System.out.println("我是奥迪;"+this.getName()+"启动了,速度为"+this.getSpeed());
}
public void stop(){
System.out.println("我是奥迪;"+this.getName()+"停止了");
}
}
public class CAR_FACTORY_AUDI implements CAR_FACTORY {
public Car create_car() {
CAR_CALSS_3W car_3w_imp = new CAR_CALSS_3W();
car_3w_imp.setName("上海大众passt");
car_3w_imp.setSpeed(200);
return car_3w_imp;
}
}
public class CAR_FACTORY_Auto implements CAR_FACTORY {
public Car create_car() {
CAR_CALSS_AUDI car_audi_imp = new CAR_CALSS_AUDI();
car_audi_imp.setName("奥迪A6");
car_audi_imp.setSpeed(200);
return car_audi_imp;
}
}
public static void main(String[] args) {
CAR_FACTORY_AUDI factory_audi = new CAR_FACTORY_AUDI();
Car car_ref = factory_audi.create_car();
car_ref.start();
car_ref.stop();
}
package cn.java.adpater;
interface Car {
void run();
void stop();
}
class Benz implements Car {
public void run() {
System.out.println("奔驰开车了");
}
public void stop() {
System.out.println("奔驰停车了");
}
}
class Ford implements Car {
public void run() {
System.out.println("福特开车了");
}
public void stop() {
System.out.println("福特停车了");
}
}
//加上次接口,就成了工厂方法模式,否则:简单工厂模式
//抽象工厂模式,就是把工厂给抽象(接口)出来,然后在实现这个接口,窗户端调用时,要通过new来创建工厂,然后在调用工厂里的方法
interface AbstractFactory{}
class FactoryCar implements AbstractFactory{
public static Car newCar(String type) {
Car c = null;
try {
c = (Car) Class.forName("cn.java.adpater." + type).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return c;
}
}
//有对象模型Car,创建对象Benz,通过工厂帮我们new出来
public class FactoryDemo {
public static void main(String[] args) {
Car car = FactoryCar.newCar("Benz");
if (car != null) {
car.run();
car.stop();
}else{
System.out.println("造不了这种汽车.....");
}
}
}
package org.jzkangta.factorydemo03;
interface Person{
public void eat();
public void talk();
}
//男人
class Man implements Person{
public void eat(){
System.out.println("男人再吃东西。。。。");
}
public void talk(){
System.out.println("男人在说话。。。。");
}
}
//女人
class Woman implements Person{
public void eat(){
System.out.println("女人再吃东西。。。。");
}
public void talk(){
System.out.println("女人在说话。。。。");
}
}
interface Animal{
public void eat();
public void sleep();
}
//公牛
class Bull implements Animal{
public void eat(){
System.out.println("Bull再吃东西。。。。。");
}
public void sleep(){
System.out.println("Bull睡觉了。。。。");
}
}
//母牛
class Cow implements Animal{
public void eat(){
System.out.println("Cow再吃东西。。。。。");
}
public void sleep(){
System.out.println("Cow睡觉了。。。。");
}
}
//NWFactory-->女娲
interface NWFactory{
public Person getPerson(String type);
public Animal getAnimal(String type);
}
//阳绳-->用来造男人和雄性动物(Bull)
class YangSheng implements NWFactory{
Man m=null;
Bull b=null;
public Man getPerson(String type){
try {
m=(Man)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return m;
}
public Bull getAnimal(String type){
try {
b=(Bull)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
}
//阴绳-->用来造女人和雌性动物(Cow)
class YinSheng implements NWFactory{
Woman w=null;
Cow c=null;
public Woman getPerson(String type){
try {
w=(Woman)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return w;
}
public Cow getAnimal(String type){
try {
c=(Cow)Class.forName("org.jzkangta.factorydemo03."+type).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return c;
}
}
public class FactoryDemo03 {
public static void main(String[] args) {
//实例化一个阳绳,ys
YangSheng ys=new YangSheng();
//实例化一个阴绳,ys1
YinSheng ys1=new YinSheng();
//造男人和女人,p1是男人,p2是女人
Person p1=ys.getPerson("Man");
Person p2=ys1.getPerson("Woman");
//造动物,a1是公牛(Bull),a2是母牛(Cow)
Animal a1=ys.getAnimal("Bull");
Animal a2=ys1.getAnimal("Cow");
a1.eat();
a1.sleep();
a2.eat();
a2.sleep();
p1.eat();
p1.talk();
p2.eat();
p2.talk();
}
}
分享到:
相关推荐
**Java工厂设计模式之简单工厂** 简单工厂设计模式是一种创建型设计模式,它提供一个创建对象的静态方法,客户端可以通过这个静态方法获取所需的具体产品,而无需了解这些产品的具体实现。这种模式的主要目的是将...
例题简单的阐述了Java工厂模式的概念,有利于读者更好地了解Java工厂模式
java工厂设计模式
java工厂设计模式讲解+例子,三种工厂模式的讲解,简单工厂、工厂方法、抽象工厂
java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...
**简单工厂模式**是软件设计模式中的一种基础模式,它属于创建型模式,主要用于简化对象的创建过程。在简单工厂模式中,一个专门的工厂类负责创建对象,客户端通过调用工厂类的方法来获取所需的对象,而无需关心具体...
例如,`java工厂设计模式.doc`可能详细介绍了这些不同类型的工厂模式及其应用场景,并通过实例展示了如何在Java中实现它们。 接下来是单例模式。单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式在...
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
"设计模式之java工厂模式"是关于如何优雅地创建对象的一种经典设计模式,它属于创建者模式类别。创建者模式主要关注对象的创建,而工厂模式则在其中扮演着重要角色,因为它提供了一种抽象的方式来创建对象,从而使...
在软件开发中,设计模式是解决常见问题的模板或最佳实践,它们被广泛应用于Java和其他面向对象编程语言中。以下是对标题和描述中提到的一些关键设计模式的详细解释: 1. **MVC模式(Model-View-Controller)**:这...
**工厂模式**是一种常见的设计模式,它在Java中被广泛应用于创建对象实例。工厂模式的主要目的是将对象的创建过程封装起来,使得代码更加灵活且易于维护。通过使用工厂模式,我们可以将实例化对象的责任从客户端代码...
Java设计模式之工厂模式实现方法详解 工厂模式是 Java 设计模式中的一种重要模式,它提供了一种创建对象的接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式主要有三种:简单工厂模式、...
Java设计模式——工厂设计模式详解 在软件设计中,工厂设计模式是一种常用的设计模式,主要用于实例化有共同接口的类。Java设计模式——工厂设计模式是Java中的一种常用的设计模式,主要用于实例化有共同接口的类。...
Java作为一门广泛应用的开发语言,其设计模式的应用对于提高代码质量、可维护性和可扩展性至关重要。本文将着重探讨创建型模式、结构型模式和行为模式这三大类设计模式,并结合六项设计原则进行深入解析。 首先,...
以下是关于JAVA设计模式中提及的四种模式——工厂模式、代理模式、迭代器模式以及责任链模式的详细说明。 1. **工厂模式**:工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当创建...
Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...
在Java编程中,运用合适的设计模式可以提高代码的可维护性、可扩展性和可复用性。以下是关于Java版本设计模式实现demo的一些补充说明: 1. 设计模式分类 设计模式通常分为三大类:创建型模式、结构型模式和行为型模式...
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...