黑马程序员_设计模式

来源:互联网 发布:亲和素淘宝,创始人 编辑:程序博客网 时间:2024/04/27 15:01

一、设计模式概述

1、设计模式概念:
我们项目中有很多相同的东西,我们把这些相同的东西抽取出来
符合某种规则,这个称为设计模式。

二、简单工厂模式
1、如果有写完一个类不想让其他人创建这个类的对象怎么办?
第一种把构造私有化
第二种定义抽象类
2、面向对象的设计原则?
对修改关闭,对扩展开放

三、工厂方法模式

1、简单工厂模式的弊端
如果再有一个新的动物加入的话,就需要修改代码,不符合咱们的对修改关闭,不好。

2、工厂方法模式的好处
如果再有一个新的动物加入的话,不需要修改代码,只需要创建一个新的动物工厂类,和
那个动物的描述类就可以了,符合面向对象的开闭原则。

3、工厂模式中心思想
原来在main方法中创建对象,工厂模式就是在其他类中用方法封装创建对象的过程,
想要创建对象直接调用方法即可。

四、单例设计模式(饿汉式)

1、怎么样去写一个单例设计模式?
前提条件:一个类中只能创建一个对象
A、把构造方法私有化(为了不让外界随意创建对象)
B、在本类中
创建一个私有并且静态的本类对象
C、写一个公共静态方法返回第二步创建的那个对象。

代码:

class Student{

private Student(){}//使不能创建对象

        private static Student s = new Student();、//创建一个私有并且静态的本类对象

        public static Student getStudent(){//创建一个公共的访问方式

return s;

}

class Text{

public static void main(String[] str){

                Student s1 = Student.getStudent();

                Student s2= Student.getStudent();

               System.out.println(s1==s2);

}

}

五、单例设计模式(懒汉
饿汉式(开发用):它是在类已加载就创建对象

懒汉式(面试用):在要用到它的时候才去创建(延迟加载思想)


写一个懒汉式的步骤:
A、把构造方法私有化(为了不让外界随意创建对象)
B、在本类中定义一个私有并且静态的变量并赋值为null。
C、定义一个静态且加锁的方法,并在方法中判断对象是否为null

   如果为null则创建对象,如果不为null则直接返回对象。

代码:

class Student{

private Student(){}//使不能创建对象

        private static Student s = null;

        public static Student getStudent(){//提供一个公共的访问方式

                  if(s==null){//如果没有,就创建一个。

                  s = new Student(); 

  }

return s;

}

class Text{

public static void main(String[] str){

    Student s1 = Student.getStudent();

                Student s2= Student.getStudent();

               System.out.println(s1==s2);

}

}


注意:懒汉式如果是在多线程程序中的话,会出现线程安全问题,需要加锁。

七、模拟手机发展(用装饰模式)
1、什么是装饰模式?
对类的原有功能进行了修饰和包装扩充

2、应用步骤:
 第一步:先找到被装饰的那个接口Phone

 第二步:创建一个实体类PhoneImp去实现Phone这个接口

 第三步:创建一个装饰类,实现Phone这个接口,调用实现就可以了。

0 0
原创粉丝点击