1.单例设计模式

  单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

  1)构造方法私有化

  2)声明一个本类对象

  3)给外部提供一个静态方法获取对象实例

  例如:

    class Singleton{

      private static Singletho1 s = new Singletho1();

      private Singletho1(){}

      public static Singletho1 getInstance(){

        return s;

      }

    } 

 

2.模板方法模式(Templete Method)

  模板方法模式:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变

         一个算法的结构即可重新定义该算法的某些特定的步骤。

 

 

3.策略模式(Strategy Pattern)

  策略模式:定义了一系列的算法,将每一种算法封装起来并可以互相替换使用,策略模式让算法独立于使用它的客户应用而独立变化

  OO设计原则:

    1)面向接口编程(面向抽象编程)

    2)封装变化(把可变化的东西抽象出来,单独封装起来)

    3)多用组合,少用继承

    4)对修改关闭,对扩展开放

 

4.简单工厂模式

  简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单使用的模式。

  例如:

    

 1 public class FactoryDemo {
 2     
 3     public static void main(String[] args) {
 4         
 5         Doll clothDoll = DollFactory.getInstance("cloth");
 6         if(clothDoll != null){
 7             System.out.println(clothDoll.getInfo());
 8         }
 9         Doll barbieDoll = DollFactory.getInstance("barbie");
10         if(barbieDoll != null){
11             System.out.println(barbieDoll.getInfo());
12         }
13         
14     }
15     
16 }
17 
18 
19 /**
20  * @ClassName: DollFactory 
21  * @Description: 工厂类 
22  * @date 2015年1月16日 上午11:03:18 
23  */
24 class DollFactory{
25      //值负责产生对象
26     public static Doll getInstance (String name){
27         //根据条件不同的对象
28         if("cloth".equals(name)){
29             return new ClothDoll();
30         }else if ("barbie".equals(name)){
31             return new BarbieDoll();
32         }
33         return null;
34     }
35     
36 }
37 
38 /**
39  * @ClassName: Doll 
40  * @Description: 娃娃类 
41  * @date 2015年1月16日 上午11:03:13 
42  */
43 interface Doll{
44     
45     public String getInfo();
46 }
47 
48 /**
49  * @ClassName: ClothDoll 
50  * @Description:  布娃娃
51  * @date 2015年1月16日 上午11:03:09 
52  */
53 class ClothDoll implements Doll{
54     
55     public String getInfo(){
56         return "我是布娃娃。";
57     }
58 }
59 
60 
61 /**
62  * @ClassName: BarbieDoll 
63  * @Description: 芭比娃娃 
64  * @date 2015年1月16日 上午11:03:03 
65  */
66 class BarbieDoll implements Doll{
67     
68     public String getInfo(){
69         return "我是芭比娃娃.";
70     }
71 }
FactoryDemo Code

相关文章:

  • 2021-11-18
  • 2021-06-18
猜你喜欢
  • 2021-08-12
  • 2022-02-28
  • 2021-09-07
  • 2021-07-25
  • 2022-12-23
相关资源
相似解决方案