热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设计_常用设计代码一

本文由编程笔记#小编为大家整理,主要介绍了常用设计代码一相关的知识,希望对你有一定的参考价值。一单例模式饿汉:
本文由编程笔记#小编为大家整理,主要介绍了常用设计代码一相关的知识,希望对你有一定的参考价值。


一 单例模式

饿汉:
public class SingleTon {
private static final SingleTon INSTANCE = new SingleTon();
private SingleTon() {
}
public static SingleTon getInstance() {
return INSTANCE;
}
}

懒汉:
public class SingleTon {
private volatile static SingleTon INSTANCE = null;
private SingleTon() {
}
public static SingleTon getInstance() {
if (INSTANCE == null) {
synchronized (INSTANCE) {
if (INSTANCE == null)
INSTANCE = new SingleTon(); }
}
return INSTANCE;
}
}
对比:因为对象在构造的时候可能会有时间开销,因此在多线程的时候需要考虑到线程安全,voliate关键字只能保证对象的可见性, synchronized保证线程安全
二: 工厂模式

类图:








技术分享图片



普通工厂代码: 1.接口实现功能 public interface Sender {
public void send(); }2. 不同的类实现不同功能: QQ: public class QQ implements Sender { @Override public void send() { System.out.println("QQ send info"); } }
WeChat: public class WeChat implements Sender { @Override public void send() { System.out.println("WeChat send info"); }
}
3.工厂创建对象
public class SendFactory {
public static final String QQ = "QQ"; public static final String WeChat = "WECHAT";
public Sender product(String type) {
if (SendFactory.QQ.equals(type)) {
return new QQ(); } else if (SendFactory.WeChat.equals(type)) {
return new WeChat(); }
return null;
} }
普通工厂和工厂方法差不多,只是在普通工厂中创建对象需要一个参数(type),工厂方法中提供多个方法,不同方法创建不同工厂


三 适配器模式
类适配器:

类图:








技术分享图片



代码:

接口抽象共同功能: public interface Targetable {
public void method1();
public void method2(); }

产品一实现了功能: public class Source {
public void method1(){
System.out.println("method1....");
}

新的产品需要功能2,创建适配器保证功能一二正常运行

public class SpecialAdapter extends Source implements Targetable {
@Override public void method2() {
System.out.println("method2 ..."); } }

对象适配器:
public class SpecialAdapter implements Targetable {
private Source source;
public SpecialAdapter(Source source) {
this.source = source; }
@Override public void method2() {
System.out.println(); }
@Override public void method1() {
source.method1(); }
}

适配器关键字:组合 继承 实现









































































































































































推荐阅读
author-avatar
绿香源酥脆冬枣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有