- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计模式快速参考
设计模式快速参考
本章描述常见的设计模式。描述主要由两部分组成,一部分是模式代码,一 部分时调用示例。
8.1 工厂模式
8.1.1 简单工厂
abstract class Fruit{
}
class Apple extends Fruit{
}
class Orange extends Fruit{
}
class FruitFactory{
pulic static Fruit getFruit(String fruitType){
if (“apple” == fruitType){
return new Apple();
} else if (“orange” == fruitType) {
return new Orange();
}
}
}
Client:
Apple apple = FruitFactory.getFruit(“apple”);
...
8.1.2 工厂方法
interface IFruitFactory{
puhlic Fruit getFruit();
}
class AppleFactory implements IFruitFactory{
public Fruit getFruit(){
//生产苹果
return new Apple();
}
}
Client:
IFruitFactory factory = new AppleFactory(); Fruit fruit = new factory.getFruit();
8.2 单例模式
class Singleton{
private static Singleton singleton = null;
public static Singleton getInstance(){
if(null == singleton){
singleton = new Singleton();
}
return singleton;
}
public String otherOperation(){
//方法实现
}
}
Client:
String str = Singleton.getInstance().otherOperation();
多线程时使用 double-check 模式确保线程安全:
class Singleton{
private static Singleton singleton = null;
public static Singleton getInstance(){
if(null == singleton)
sychronized (Singleton.class){
if(null == singleton){
singleton = new Singleton();
}
}
}
return singleton;
}
}
8.3 适配器模式
interface Powerable{
110v provide();
}
class 110v {
}
class 220v {
}
class 110vPower implements Powerable{
public 110v provide(){
//提供 110v 电压
}
}
class 220vPower {
public 220v provide(){
//提供 220v 电压
}
}
class 220vAdapter implements Powerable{
public 110v provide(){
110v voltage = null;
220vPower power = new 220vPower();
//转换过程,@!@#$%^
return voltage;
}
}
Client:
Powerable provider = new 220vAdapter();
provider.provide();
8.4 组合模式
abstract class Hardware{
}
class Mainboard extends Hardware{
}
class Memory extends Hardware{
}
class Display extends Hardware(
}
class NetworkAdapter extends Hardware{
}
class Computer extends Hardware[
private List parts = new Arraylist();
public List add(Hardware hardware){
parts.add(hardware);
return parts;
}
}
Client:
Computer computer = new Computer
您可能关注的文档
最近下载
- 四年级数学上册(人教版)周周练(附答案).pdf VIP
- 水利工程软件:MIKE二次开发_(4).MIKE11模块介绍.docx VIP
- UL1557标准中文版-2018半导体UL中文版标准.docx
- 国民经济行业分类 .pdf VIP
- 7-中国石化动土作业安全管理规定(中国石化制〔2022〕14 号).pdf VIP
- 富平县林业发展十五五规划定稿2.docx
- 2023届高考地理二轮复习课件微专题3大气的水平运动——风.pptx VIP
- 领导干部政治理论考试100题及答案.doc VIP
- 人教B版高中数学选择性必修第一册1-1-1空间向量及其运算课件.ppt VIP
- 慢性心力衰竭及药物治疗.pptx VIP
文档评论(0)