您的位置:首页 > 职场人生

黑马程序员_设计模式

2015-07-14 00:58 267 查看
一、设计模式概述

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这个接口,调用实现就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: