java单例⼯⼚_java:常⽤的两种设计模式(单例模式和⼯⼚模
式)
⼀、单例模式:即⼀个类由始⾄终只有⼀个实例。有两种实现⽅式(1)定义⼀个类,它的构造⽅法是私有的,有⼀个私有的静态的该类的变量在初始化的时候就实例化,通过⼀个公有的静态的⽅法获取该对象。
Java代码
1. //单例模式的第⼀种形式
2. public class Singleton01 {
3.
4. // 私有的静态属性
5. private static Singleton01 instance = new Singleton01();
6.
7. // 私有的构造⽅法
8. private Singleton01() {
9. }
10.
11. // 公有的静态⽅法
12. public static Singleton01 getInstance() {
13. return instance;
14. }
15. }
(2)改进后的
Java代码
1. public class Singleton02 {
2.
3. // 私有的静态的类变量
4. private static Singleton02 instance = null;
5.
6. // 私有的构造⽅法
7. private Singleton02() {
8. }
9.
10. // 静态的公有的⽅法
11. public static Singleton02 getInstance() {
12. if (instance == null) {
13. instance = new Singleton02();
14. }
15. return instance;
16. }
17. }
⼆、⼯⼚模式:⽣产不同对象的公共接⼝(1) 产品接⼝Java代码
1. //产品接⼝
2. public interface Product {
3.
4. }
(2)产品接⼝的实现类
Java代码
1. //洗⾐机
2. public class Washer implements Product {
3.
4. public Washer(){
5. System.out.println("洗⾐机被制造了!");
6. }
7. }
Java代码
1. //空调
2. public class AirCondition implements Product {
3.
4. public AirCondition(){
5. System.out.println("空调被制造!");
6. }
7. }
(3)⼯⼚接⼝
Java代码
1. //⼯⼚接⼝
2. public interface Factory {
3.
4. //⽣产产品
5. Product produce(String productName);
6.
7. }
(4)⼯⼚的实现类
Java代码
1. //实现⼯⼚
2. public class TestFactory implements Factory {
3.单例模式的几种实现方式
4. //⽣产产品
5. public Product produce(String productName) {
6. if (productName.equals("Washer")) {
7. return new Washer();
8. }
9. if (productName.equals("AirCondition")) {
10. return new AirCondition();
11. }
12. return null;
13. }
14.
15. public static void main(String[] args) {
16. TestFactory testFactory = new TestFactory();
17. testFactory.produce("Washer");
18. testFactory.produce("AirCondition");
19. }
20. }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论