博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例模式 工厂模式
阅读量:6442 次
发布时间:2019-06-23

本文共 2392 字,大约阅读时间需要 7 分钟。

  hot3.png

 
单例
package com.enorth.user;
/**    
* 李晨        
* 创建时间:Jun 29, 2009 9:10:02 AM    
*/
public class Singleton {
   private static Singleton singleton = null;
   private Singleton() {
  }
   public static Singleton getInstance() {
     if (singleton == null) {
       //防止线程安全
       synchronized (Singleton. class) {
         if (singleton == null) {
          singleton = new Singleton();
           return singleton;
        }
      }
    }
     return singleton;
  }
}
 
简单工厂
// 产品接口                    
public interface Product {        
        
         public void getName();        
        
}        
        
// 具体产品A        
public class ProductA implements Product {        
        
         public void getName() {        
                System.out.println( "    I am ProductA    ");        
        }        
        
}        
        
// 具体产品B        
public class ProductB implements Product {        
        
         public void getName() {        
                System.out.println( "    I am ProductB    ");        
        }        
        
}        
        
// 工厂类        
public class ProductCreator {        
        
         public Product createProduct(String type) {        
                 if ( " A ".equals(type)) {        
                         return new ProductA();        
                }        
                 if ( " B ".equals(type)) {        
                         return new ProductB();        
                } else        
                         return null;        
        }        
        
         public static void main(String[] args) {        
                ProductCreator creator = new ProductCreator();        
                creator.createProduct( " A ").getName();        
                creator.createProduct( " B ").getName();        
        }        
}    
 
抽象工厂
//    产品 Plant接口                    
public interface Plant {        
}        
        
// 具体产品PlantA,PlantB        
public class PlantA implements Plant {        
        
         public PlantA() {        
                System.out.println( " create PlantA ! ");        
        }        
        
         public void doSomething() {        
                System.out.println( "    PlantA do something    ");        
        }        
}        
        
public class PlantB implements Plant {        
         public PlantB() {        
                System.out.println( " create PlantB ! ");        
        }        
        
         public void doSomething() {        
                System.out.println( "    PlantB do something    ");        
        }        
}        
        
// 产品 Fruit接口        
public interface Fruit {        
}        
        
// 具体产品FruitA,FruitB        
public class FruitA implements Fruit {        
         public FruitA() {        
                System.out.println( " create FruitA ! ");        
        }        
        
         public void doSomething() {        
                System.out.println( "    FruitA do something    ");        
        }        
}        
        
public class FruitB implements Fruit {        
         public FruitB() {        
                System.out.println( " create FruitB ! ");        
        }        
        
         public void doSomething() {        
                System.out.println( "    FruitB do something    ");        
        }        
}        
        
// 抽象工厂方法        
public interface AbstractFactory {        
         public Plant createPlant();        
        
         public Fruit createFruit();        
}        
        
// 具体工厂方法        
public class FactoryA implements AbstractFactory {        
         public Plant createPlant() {        
                 return new PlantA();        
        }        
        
         public Fruit createFruit() {        
                 return new FruitA();        
        }        
}        
        
public class FactoryB implements AbstractFactory {        
         public Plant createPlant() {        
                 return new PlantB();        
        }        
        
         public Fruit createFruit() {        
                 return new FruitB();        
        }        
}    
 
 

本文出自 “” 博客,请务必保留此出处

转载于:https://my.oschina.net/lichen/blog/264872

你可能感兴趣的文章
Android组件化探索与实践
查看>>
开发笔记2 | Java 代码规约第1条
查看>>
Vue.js 子组件的异步加载及其生命周期控制-------异步加载子组件,子组件的生命周期控制过程不一样...
查看>>
编写可维护的JavaScript
查看>>
高效的CSS代码(2)
查看>>
朱兰的质量三部曲——《可以量化的管理学》
查看>>
丰田生产方式和TOC工序切换时间的解决
查看>>
2017年勒索软件、物联网攻击将继续肆虐
查看>>
用友网络董事长王文京为何出现在乌镇大会中?
查看>>
大学团队打造手语翻译机器人,完整安装下来需要149个小时
查看>>
Wireshark抓包分析/TCP/Http/Https及代理IP的识别
查看>>
不同包下,相同数据结构的两个类进行转换
查看>>
软件安装(linux)
查看>>
TeamPlain for VSTS - Web Access for Team System-TFS 跨平台的客户端
查看>>
面对前车之鉴的AR,现在的VR要做些什么?
查看>>
vscode 换行符\n 变成\r\n
查看>>
一个绘制虚线的非常规函数(常规方法,打印机上绘制不出虚线)
查看>>
获得本机的IP,掩码和网关
查看>>
大数据之 ZooKeeper原理及其在Hadoop和HBase中的应用
查看>>
Delphi中将XML文件数据装入DataSet
查看>>