java设计模式之创建型模式
2015-03-11 15:53
120 查看
创建型模式共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
单例模式:
原文链接:如何正确地写出单例模式含义:在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
推荐写法一(静态内部类):
public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){} public static final Singleton getInstance() { return SingletonHolder.INSTANCE; } }
推荐写法二(枚举):
public enum EasySingleton{ INSTANCE; }
工厂模式:
原文链接:深入浅出工厂模式含义:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。(根据传入参数决定创建哪个实例)
栗子:
//抽象产品角色 public interface Car { public void drive(); } //具体产品角色一 public class Benz implements Car { public void drive() { System.out.println("Driving Benz "); } } //具体产品角色二 public class Bmw implements Car { public void drive() { System.out.println("Driving Bmw "); } } //工厂类角色 public class Driver { //工厂方法.注意 返回类型为抽象产品角色 public static Car driverCar(String s) throws Exception { //判断逻辑,返回具体的产品角色给Client if (s.equalsIgnoreCase("Benz")) return new Benz(); else if (s.equalsIgnoreCase("Bmw")) return new Bmw(); else throw new Exception(); } } //欢迎暴发户出场...... public class Magnate { public static void main(String[] args) { Car car = Driver.driverCar("benz");//告诉司机我今天坐奔驰 car.drive();//下命令:开车 } }
抽象工厂模式:
原文链接:***A设计模式之抽象工厂模式含义:工创建一组相关或者相互依赖的对象。
栗子:
产品类:
//发动机以及型号 public interface Engine { } public class EngineA extends Engine{ public EngineA(){ System.out.println("制造-->EngineA"); } } public class EngineB extends Engine{ public EngineB(){ System.out.println("制造-->EngineB"); } } //空调以及型号 public interface Aircondition { } public class AirconditionA extends Aircondition{ public AirconditionA(){ System.out.println("制造-->AirconditionA"); } } public class AirconditionB extends Aircondition{ public AirconditionB(){ System.out.println("制造-->AirconditionB"); } }创建工厂类:
//创建工厂的接口 public interface AbstractFactory { //制造发动机 public Engine createEngine(); //制造空调 public Aircondition createAircondition(); } //为宝马320系列生产配件 public class FactoryBMW320 implements AbstractFactory{ @Override public Engine createEngine() { return new EngineA(); } @Override public Aircondition createAircondition() { return new AirconditionA(); } } //宝马523系列 public class FactoryBMW523 implements AbstractFactory { @Override public Engine createEngine() { return new EngineB(); } @Override public Aircondition createAircondition() { return new AirconditionB(); } }客户:
public class Customer { public static void main(String[] args){ //生产宝马320系列配件 FactoryBMW320 factoryBMW320 = new FactoryBMW320(); factoryBMW320.createEngine(); factoryBMW320.createAircondition(); //生产宝马523系列配件 FactoryBMW523 factoryBMW523 = new FactoryBMW523(); factoryBMW523.createEngine(); factoryBMW523.createAircondition(); } }
待续.....
相关文章推荐
- JAVA设计模式创建型模式之工厂方法
- java设计模式总结篇--创建型模式
- JAVA设计模式(05):创建型-原型模式(Prototype)
- Java技术_每天掌握一种设计模式(002)_使用场景及简单实例(创建型:单例模式)
- java设计模式——创建型模式专题(二)策略模式
- java 设计模式 (1)- 创建型模式
- java设计模式(创建型)之抽象工厂模式
- 一起学Java设计模式--抽象工厂方法模式(创建型模式)
- JAVA设计模式(02):创建型-抽象工厂模式(Abstract Factory)
- java设计模式--创建型模式--抽象工厂
- JAVA设计模式之工厂方法 (创建型模式)
- java设计模式(创建型)之简单工厂模式
- java设计模式之创建型模式-抽象工厂(AbstractFactory)
- 一起学Java设计模式--单例模式(创建型模式)
- 创建型设计模式---JAVA Singleton模式(单身模式)
- JAVA设计模式 —创建型模式总结
- Java 23种设计模式详尽分析与实例解析之一--创建型模式
- java的设计模式[创建型模式之工厂…
- Java开发中的23个设计模式--第一部分:创建型模式
- 设计模式(一)简单工厂(创建型)(Java&&PHP)