adapter

adapter_第1张图片

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。

这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。

我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。

意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。

何时使用: 1、系统需要使用现有的类,而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。 3、通过接口转换,将一个类插入另一个类系中。(比如老虎和飞禽,现在多了一个飞虎,在不增加实体的需求下,增加一个适配器,在里面包容一个虎对象,实现飞的接口。)

如何解决:继承或依赖(推荐)。

关键代码:适配器继承或依赖已有的对象,实现想要的目标接口。

优点: 1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性好。

缺点: 1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。 2.由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。

使用场景:有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。

注意事项:适配器不是在详细设计时添加的,而是解决正在服役的项目的问题。

U2FsdGVkX19g9nzl/UVXe77jpcswLl8O0zw1vLvIclzWDZo4hsaClG8f3v8QHIBi
4tAxin5rISES4DjN4ogUI2RKlN0XalQT0WTfDkaNGmEhDpbYXvQ/lc+gzGji7k9/
al+duXk2GUlppyjkzc42hu0tEhh1BIgaaq9rOaKqvelJBOWdwjSbWR46ldgi5Kt6
9/eXv0HdcO09GoCnllpkWN+HcagVUSc2qRFKjQRnb34d4rp7feBQv8pObYjDOOzy
1Rf8bN7ms2PZ1TT8tDfsm42BVk8a7N5Pvo8qs/KZNt/vycYxgBDPZYwBwIxBQiPl
0ORtKs6dh9pfrqAhpNRDq4JjPBBNJuzqdsivCiJgxgN/iZMrAB5FcWDmpAgntdgb
vc1tfhe5RaAblJng0c8UTiKhWSIvprPKb/r3R0PMNCjYAhkBEVUvTmI39B0ES/pT
rr+Er4e6p0PsFe1I+Zqrtjoewi24ML5+41oOuqF9UJGeyUQnr2rNp/cjO68Ih3Rv
S3OiiWlbpD7YjD6bUrvXw8UwQKu0V2EOlVJAkv7Fk97BU9DCQsAman5TdA1+c9Dp
bGfjM0oqEua8TJ/MRv9qNsWJfIQOslxYXx2mICJx7J25iHSxtjYJotHluO1Aer01
TUcWy6bE1fZwBDO0MbbnyP+aMdmcjGvuN6HaHBMsVbShQobR2JEsx2mZrnMFz97f
HGyys3mxukl1VUJtQSVN60RUMj7nWr+j+ilZYBnXm9rcIBtx6kd8z1244U1zCYa8
aolD1HTa4FKa+v64qdPFQ0l40d6PObBVD5vPgGdGIV7I9qenMlgpAN+wN4Miw1hx
KUdw4cwRdtOgJLG5NEkKWOjsahK+cYqN5dtgPyDEhMh4MSGzT7n7YhC0Vreoz875
mxLExx2UH/W895ojY2knoc1n/k5yR4Qy2uehWjhpEV97vhrnAEurSk5KUE8Kf2+j
WXFj1nM71oblLVBr4IfFNXtmmTze/qJtdN5inM6Q+SKig4vpUYGgMQHOFhLZZmc0
o+bPemT3VnnPVcw9e5kS96wtdn0Sl+UHTmgcGQqqkmNobxJl+LS6rIj0nF2kdQvu
1K0J++4jW921Rk/vQEMv58CBVQi9BQYK6/GuMnID3JfJ4AfOkQj4ATR2/qbCwfs+
2DdFJt4Eokao5l5Q7715pf4SOYhUCzSq72oaV+1YizjeYAAiBKf4X5sg4TOxYCI7
ZSOpOTmaYfg5m9uJ93B86zMlVdGtHvXEFaIF10YjTQi+Cn8P3eWZ2tfuKirdTPBr
9CfZ9h/4znTJCZbuLzHiKnicB0RB7QACftQ4xhTcIqrSqGCbaf7QLTpVv+1EPzz2
Y8GeFpQpzATIzcvEHGrTAxA33XADJZo1t7xwMP9o56znaeKfdvQIzjexBp44SKeR
A0qXBzBCj53TSTrmNW8WTfeqpR+tVFpCAHtIv/jFGzLeQYpvc+Z09Dgm/sRmDFCN
wHSfSL2tk3YC3WwuX9j6L9IQ5eWP9DHmiOk+s1TCunV0MRymg3E7WDV/RJ04DbzL
DRXleakAjDgqJYhc1hr2pNB5epw9GZH4p6Gkq4p3uWZTAIfMZX7UXDsowl9yMe4H
Fl/wh26g2gIsfHjIPS2UYDSJT2+aErqRRmWg/Z94MSXwNu/EInAEwpwtDxD6iwmC
KwacDW7QCR0ZNVloDXTZE98AzKjNGjs25215p8FVt1/QwI1XL+J/dqgMXUXRUQRo
liMdf58ZLOLBEUlsnrP4OSTSEoewNjXaZiOdaIGlKdLPeit4tP4TyRlqWRVaVcO4
awoQjq7ojRtqyuQ3hB+m0nM4j8yQbV6v6YdOsC3GTgufUZqdKuP2Dk8O84cnma/M
Lxt3EMD1p5hPWrUiQU7bzlBWkFITc+5uGqS/ADDpGvs282Yd7q0HVUXjTKY+wRQZ
2b2SRnV3XXMjSl1qnIHWaWhnkPME51XtmLKGRFSJq6AbvTbghBbKi90vaAREG77l
4i8N8HKSOnDVDzp0mzoo65N6qCClQHKBkYFoFvcEhVLlYHPAo4cWwWOGk5dTMzMH
j7f8e+xMHhmxmHTE7uzuPWO6BCptDnNBDFKMYAZeGEZvI0V6DPmYeUsNlnzq4EzJ
IW8YuuL+fHbjgpmFKiLH4kKAUNz7y3RUD34Sz1SiSnfrW2qZIWU0pCjhsLImRUlC
Jvvfo7IlzoPUGzMgp3iR6QziLjfcqFZlUgWVMLaZ3j4HY6eCQJCHX3dmlpDDiKuS
dYSBfig4DNxWqPq6CPXn+W79WfZY+aSCY2lkzz+xgKBH6m2danC7KIbkQIuFIgwR
HkBFe6E2136lDzpDsgoRPn9SVd6/th8LY8Jq2sfrTqgws9BmjST61O0U1DOh4jkN
I9oX45hneH+CRAuIx0jW3zMuutBqFFSfYn5lqqfhFWMwHxhIMKvMVuZ4s9vu2KBg
9814mxSs84e2Y+5gWP+8VSHRgA47TqelE6dN8H66kTQLfalXu2HLU9R0r2EM/4fu
FdDpabe6QsEf+9P3NkMDNKIg+LfJFqYs6blB8gJlSkq8EjJRpzU0ISqTP2PiImkh
eVpAe/hpuiWQtmV6yMijF7UvoFzyGKGNVvZ0nzIYVpIQUiGfg1d1mpsfj82TWsCj
tNgvAhx9g19fvXSLFLJKDLYa3xqK5XaMlzbHXlX5m2xYPXp6SFk1YGSCN9jK14cp
zZY8zmbMmDqHB4VnuMPyX8Wb01g3V6UCR68teWBXH+Bf/zY6i2sANFJZOVGKakm6
FxCTUb9LbU0T9yDTuChdZb++EJX/Qr3aVLSp1Ack5eY1svJ0HXmWkVygA8RlF7BS
GF5gjgIYRLc3m+WXooDVRaDW/5ssAWJW+r1qiKvw9yPZMynOow+96boQzUJ8mCAy
QgNxioqxiTnooEsNqVn1Lh8D74IwAWeL6w2iZkGGMRISXQLRZYg0XTPvGdE07KZV
xbvn1/UYxgtOQzHKYC0eXAKqK5tQsZJi4WSG8BoJvSXPGF2dMJLaKzENXFkhAHbt
5N5ZTaCqdsOyFoAPevmmcIx/szTe+YFaEwwhRoWFQQTccdDu/jkI4pSnqwTeKxnO
cX/H5Wsu/2UrQaLmhuc662zfaaHuuy4TB1qUm33oywrDGgoffjT1aHpC5oRVhkpL
aN8gdn4CYmFewHsceLt2i64VsNxqRiGSNkYkrpClNAgpj/4OMnL66sq1AQHt1PzL
MNw3lXhRoPDmcJXkl1KW1+nBiG+VVlXijCLietILpH2d3RmS1gI3iB5N/jnX6yGg
9Jvgb+l8z/AneiJzYDLhhSNAMaDk9exo+xqVN0nezLkVGCB/pqdlfQEh93HpYRc0
Vla8m2cxInsTtqisgmSqRG0WEPLwy9fAxYaSl919QKEgLN5dEhDV0ycvl/YXSzin
wZUu0Xs2fCtpUH4rjLmcxw9cpF5WXJT+QM2k4Vd96SwK2QSS9LZJgoBfyRZq2wMI
7N2dQS0bRjhTl3szDbvFzwERBETApzcnYFm/ptAF05H2L6oLjwAmCn4tiTm/S2CY
60BGGKklshkSckAQplYgVIhqI5LpTdfPtIh6zZ0yxdIl5CB/Fh7inYDwNJXzjj4N
u0eLb1p0o3Kwp8uWPteoPBRUUAnOqFl3OBBx5yziiJGXFzIX4GT7Ft+VjVwiRb6l
2TMMBHQINKqpv854olVebaam2O+mIxb0wV9A1deGOVjKuowa4cZjak5+9Fmg7Ecy
AI0KUn5BYAifGpa0kBc+9uheVsK+bgCVmjZIOMi8B2F1mfeL61hVe9R1w0MQQTlf
d2sStbw7fRAWBGyphJ6W5qxo9klbJEJ+JVmcPvU0y8uVWPT5cIpFvuyRSGKOcUXD
/MT4rh8Xabpe5IJR7DLTm7jj0K41fyz5B+apyhahX9c1GFwEWvQH83RXMnr3M0ME
S/AkRFUCaBKqXbq/JhKHr2tDB20bqVEIecAg4n3xDpp3yrCAqW6iym2HXB18VBXs
S0mjiLwI4edvP+sQC1zV3bdYIMCwoClugN6n/L5ee927Z6nslwTX801Q06mUR/Ji
Kf53RR+K0B4lztxUOSFb0Gi19NJCkeJ+/9HVRbWm/Gz/6grrI77Y96By0jTyK5wN
YOXzIKRBf2Snpr8vrw1VBKRA5W55pPohivKormszK9/85Hv39JpsMJZBr3tb0m7j
JAbP3lt2YKUzXsmPSD37eYRkT0vo9h5yqtCC/9KOyMWcVzZhShXamsUul3dNIY0V
qVk+h3RrwBWrlq79BVGkrsWfVBblsWdztKUnTCCpufU=

你可能感兴趣的:(笔记)