Java设计模式—单例模式以及权限修饰符
2018-01-10 09:06
330 查看
什么是设计模式?
对问题行之有效地解决方式,其实他是一种设计思想。
1. 单例设计模式:
解决问题:保证一个类在内存中的对象是唯一的。
如何保证对象的唯一性?
1. 不允许其他程序用new关键字来创建对象。
2. 在该类中创建一个本类的实例。
3. 定义一个公有的方法,让其他程序可以获取该对象。
步骤:
1. 私有化构造方法。
2. 2.通过new在本类中创建一个本类对象。
3. 定义一个公有的方法,将创建的对象返回。
class Single{
//饿汉式
private Single(){//当类加载时,对象就加载了。
}
private static Single s = new Single();
public static Single getS() {
return s;
}
}
class Single2{//懒汉式:类加载进来时没有对象,只有调用了gets()时才会产生对象。
private static Single2 s = null;
private Single2(){
}
public static Single2 gets(){
if(s == null){
s = new Single2();
}
return s;
}
}
public class SingleDemo {
public static void main(String[] args) {
Single s1 = Single.getS();
}
}
创建类的程序员:创建新数据类型(java中的类)的程序员,目标是构建类。
访问控制存在的原因:
1. 让客户端程序员无法触及他们不应该触及的部分。
2. 允许创建类的程序员可以改变类内部的创建方式而不用担心会影响到客户端程序员。
权限修饰符的四个关键字:
public,protected,private,默认修饰符(defualt)。
public:对任何人都可以用。
protected:继承的类可以访问,其他的和private一样。
defualt:包访问权限。
private:除了类类型的创建者和内部方法之外的任何人都不能访问的元素。
对问题行之有效地解决方式,其实他是一种设计思想。
1. 单例设计模式:
解决问题:保证一个类在内存中的对象是唯一的。
如何保证对象的唯一性?
1. 不允许其他程序用new关键字来创建对象。
2. 在该类中创建一个本类的实例。
3. 定义一个公有的方法,让其他程序可以获取该对象。
步骤:
1. 私有化构造方法。
2. 2.通过new在本类中创建一个本类对象。
3. 定义一个公有的方法,将创建的对象返回。
class Single{
//饿汉式
private Single(){//当类加载时,对象就加载了。
}
private static Single s = new Single();
public static Single getS() {
return s;
}
}
class Single2{//懒汉式:类加载进来时没有对象,只有调用了gets()时才会产生对象。
private static Single2 s = null;
private Single2(){
}
public static Single2 gets(){
if(s == null){
s = new Single2();
}
return s;
}
}
public class SingleDemo {
public static void main(String[] args) {
Single s1 = Single.getS();
}
}
权限修饰符
客户端程序员:在应用中使用数据类型的消费者,他们的目标是收集各种用来实现快速应用开发的类。创建类的程序员:创建新数据类型(java中的类)的程序员,目标是构建类。
访问控制存在的原因:
1. 让客户端程序员无法触及他们不应该触及的部分。
2. 允许创建类的程序员可以改变类内部的创建方式而不用担心会影响到客户端程序员。
权限修饰符的四个关键字:
public,protected,private,默认修饰符(defualt)。
public:对任何人都可以用。
protected:继承的类可以访问,其他的和private一样。
defualt:包访问权限。
private:除了类类型的创建者和内部方法之外的任何人都不能访问的元素。
相关文章推荐
- java-06 权限的修饰符以及单例模式
- Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)
- 黑马程序员-------------多线程中的(线程、线程组、线程池、以及Java的设计模式)概念及方法的总结
- 黑马程序员--张孝祥Java高新技术-JDK1.5新特性(二)【基本数据类型的自动拆箱与装箱,枚举】以及享元设计模式
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- 设计模式之1.1 再谈反射 以及java当中通过配置文件得到类名字,并生成对象的方法
- GOF以及java的23种设计模式简介
- Java访问权限和单例设计模式
- Java设计模式:观察者模式以及Servlet中的Listener
- JAVA之旅(十四)——静态同步函数的锁是class对象,多线程的单例设计模式,死锁,线程中的通讯以及通讯所带来的安全隐患,等待唤醒机制
- java 抽象类 以及模块方法设计模式,接口
- GOF以及java的23种设计模式简介
- JAVA基于类的访问权限以及protected修饰符的限制
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- 设计及设计模式:关于Java权限控制算法
- java设计模式之工厂方法模式以及简单工厂模式还有抽象工厂模式
- Java设计模式(二):单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
- Java学习笔记四。设计模式、基本数据类型、包装类、异常、断言、包、访问权限、命名规范、jar
- 设计模式(3)-结构型-代理模式(proxy)以及java动态代理的两种方式
- JAVA23种设计模式小结以及设计原则归纳