zoukankan
html css js c++ java
设计模式 单件 & 原型
Design Pattern - Singleton & Prototype
实现了单件模式的的Client, 它自身只有一个示例, 用Instance()方法得到惟一的实例
public
class
Client
{
static
private
Hashtable ht
=
new
Hashtable();
static
protected
Client c
=
null
;
protected
Client()
{
}
public
static
Client Instance()
{
if
(c
==
null
)
c
=
new
Client();
return
c;
}
public
void
Register(String name, CloneHuman ch)
{
ht.Add(name, ch);
}
public
CloneHuman BuildCloneHuman(String name)
{
CloneHuman ch
=
(CloneHuman)ht[name];
return
ch.CreateClone();
}
}
克隆人的类, 以及分别它的子类克隆的男人和女人
public
class
CloneHuman
{
public
virtual
CloneHuman CreateClone()
{
return
null
;
}
public
void
Show()
{
String s
=
this
.GetType().ToString();
Console.WriteLine(s.Substring(s.LastIndexOf(
"
.
"
)
+
1
));
}
}
public
class
CloneMale : CloneHuman
{
public
override
CloneHuman CreateClone()
{
return
(CloneHuman)
this
.MemberwiseClone();
}
}
public
class
CloneFemale : CloneHuman
{
public
override
CloneHuman CreateClone()
{
return
(CloneHuman)
this
.MemberwiseClone();
}
}
测试程序
public
static
void
Main()
{
Client c
=
Client.Instance();
CloneMale cm
=
new
CloneMale();
CloneFemale cf
=
new
CloneFemale();
c.Register(
"
CloneMale
"
, cm);
c.Register(
"
CloneFemale
"
, cf);
for
(Int32 i
=
0
; i
<
10
; i
++
)
{
String name
=
(i
%
2
==
0
)
?
"
CloneMale
"
:
"
CloneFemale
"
;
CloneHuman ch
=
c.BuildCloneHuman(name);
ch.Show();
}
Console.ReadLine();
}
Prototype Demo
查看全文
相关阅读:
Apache Pig使用MongoLoader产生大量空文件问题
执行sparksql出现OOM问题
[TD笔记]Teradata XML
Redhat上离线/非root安装python库
Java 多线程同步关键字synchronized各种用法/特性 总结
CVE-2019-0708 微软远程桌面服务远程代码执行漏洞分析之补丁分析
Spring Security 实战(使用Spring Boot项目演示)
一些渗透中,或者扫描的nmap nse脚本推荐
kali学习笔记(一):虚拟机安装好kali后应进行的配置
Spring boot相关问题
原文地址:https://www.cnblogs.com/Dabay/p/364762.html
最新文章
slider插件制作轮播图
外边距合并
javascript实现全选,全不选,反选
将本地项目上传至github,以及将dev分支上传至gitlab
用jQuery写的轮播图
商品搜素
富文本编辑器、激活邮箱、登陆装饰器的用法、模型管理类方法(自定义)、redis使用、celery异步提交任务
g对象、信号、local、请求上下文、flask-session
自定义路由正则匹配、模板语法、请求响应、路由其他参数、session使用、闪现、before_request、中间件
初识flask、flask四剑客、配置文件、路由系统与反向解析、FBV与CBV
热门文章
什么是事务?事务的四个特性以及事务的隔离级别
drf偏离分页、游标分页、自定义分页器、自定义过滤字段
JWT自定义校验规则与生成、用户多种方式登陆、搜索过滤组件,排序组件,分页组件
三大认证:认证组件、权限组件、频率组件,JWT认证
二次封装Response类、views:视图 generics:工具视图 mixins:视图工具集 viewsets:视图集
Mac上解决访问github慢之懒人版
[Hive笔记]Hive架构
[学习笔记]CA Autosys(1)
[文章翻译]时间序列异常检测
Mac上配置IntelliJ IDEA的Spark源码阅读环境
Copyright © 2011-2022 走看看