Java基础(九)设计模式

1.单例设计模式

* 单例设计模式:保证类在内存中只有一个对象。

饿汉式

                       class Singleton {
				//1,私有构造函数
				private Singleton(){}
				//2,创建本类对象
				private static Singleton s = new Singleton();
				//3,对外提供公共的访问方法
				public static Singleton getInstance() {
					return s;
				}
			}

懒汉式

			class Singleton {
				//1,私有构造函数
				private Singleton(){}
				//2,声明一个本类的引用
				private static Singleton s;
				//3,对外提供公共的访问方法
				public static Singleton getInstance() {
					if(s == null)
						//线程1,线程2
						s = new Singleton();
					return s;
				}
			}

区别:

1.饿汉式是空间换时间,懒汉式是时间换空间

2.在多线程访问时,饿汉式不会创建多个对象,而懒汉式有可能会创建多个对象

第三种格式

			class Singleton {
				private Singleton() {}
			
				public static final Singleton s = new Singleton();//final是最终的意思,被final修饰的变量不可以被更改
			}

2.策略模式          封装变化;多用组合、少用继承;针对接口编程、不针对实现编程

定义了算法簇,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。

将对象的行为设计一个接口,这个行为的子行为分别实现这个接口。

例如:有不同的会员,设计一个会员的接口,让不同的会员(超级会员,普通会员,vip)分别实现这个接口。


3.观察者模式        为交互对象之间的松耦合设计而努力

定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

观察者模式提供了一种对象设计,让主题和观察者之间松耦合,让对象之间的互相依赖降到最低。

java内置有观察者模式类   java.util.Observable  可观察者类    java.util.Observer    观察者类

但Observable是一个类,并不是接口,这样会违反我们多用组合,少用继承的规则

4.装饰者模式           为扩展开放,对修改关闭(开闭原则)

动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

缺点:利用装饰者模式,常常造成设计中有大量的小类,数量实在太多,可能会造成使用此API程序员的困扰

5.工厂模式


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值