refactoring design smells

<[email protected]> 03 Oct 2013 20:56:07 -0700
Newsgroups gmane.comp.programming.refactoring
Message-ID <[email protected]>
CgoKCjxoZWFkPgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPCEtLQoKLyogc3RhcnQgb2Yg
YXR0YWNobWVudCBzdHlsZSAqLwogICAgICAgLnlncnAtcGhvdG8tdGl0bGV7CiAgICAgICAg
IGNsZWFyOiBib3RoOwogICAgICAgICBmb250LXNpemU6IHNtYWxsZXI7CiAgICAgICAgIGhl
aWdodDogMTVweDsKICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICAgdGV4dC1h
bGlnbjogY2VudGVyOwogICAgICAgICB3aWR0aDogNzVweDsKICAgICAgIH0KICAgICAgIGRp
di55Z3JwLXBob3RvewogICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAg
ICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IHdoaXRlOwogICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKICAg
ICAgICAgaGVpZ2h0OiA2MnB4OwogICAgICAgICB3aWR0aDogNjJweDsKICAgICAgIH0KCiAg
ICAgICBkaXYucGhvdG8tdGl0bGUgCiAgICAgICAgIGEsCiAgICAgICAgIGRpdi5waG90by10
aXRsZSBhOmFjdGl2ZSwKICAgICAgICAgZGl2LnBob3RvLXRpdGxlIGE6aG92ZXIsCiAgICAg
ICAgIGRpdi5waG90by10aXRsZSBhOnZpc2l0ZWQgewogICAgICAgICAgIHRleHQtZGVjb3Jh
dGlvbjogbm9uZTsgCiAgICAgICB9CgogICAgICAgZGl2LmF0dGFjaC10YWJsZSBkaXYuYXR0
YWNoLXJvdyB7CiAgICAgICAgIGNsZWFyOiBib3RoOwogICAgICAgfQoKICAgICAgIGRpdi5h
dHRhY2gtdGFibGUgZGl2LmF0dGFjaC1yb3cgZGl2IHsKICAgICAgICAgZmxvYXQ6IGxlZnQ7
CiAgICAgICAgIC8qIG1hcmdpbjogMnB4OyovCiAgICAgICB9CgogICAgICAgcCB7CiAgICAg
ICAgIGNsZWFyOiBib3RoOwogICAgICAgICBwYWRkaW5nOiAxNXB4IDAgM3B4IDA7Cgkgb3Zl
cmZsb3c6IGhpZGRlbjsKICAgICAgIH0KCiAgICAgICBkaXYueWdycC1maWxlIHsKICAgICAg
ICAgd2lkdGg6IDMwcHg7CiAgICAgICAgIHZhbGlnbjogbWlkZGxlOwogICAgICAgfQogICAg
ICAgZGl2LmF0dGFjaC10YWJsZSBkaXYuYXR0YWNoLXJvdyBkaXYgZGl2IGEgewogICAgICAg
ICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICB9CgogICAgICAgZGl2LmF0dGFjaC10
YWJsZSBkaXYuYXR0YWNoLXJvdyBkaXYgZGl2IHNwYW4gewogICAgICAgICBmb250LXdlaWdo
dDogbm9ybWFsOwogICAgICAgfQoKICAgICAgIGRpdi55Z3JwLWZpbGUtdGl0bGUgewogICAg
ICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgIH0KIC8qIGVuZCBvZiBhdHRhY2htZW50
IHN0eWxlICovCiAgICAgICAgLS0+CiAgICAgICAgPC9zdHlsZT4KICAgICAgICA8L2hlYWQ+
CjxodG1sPgo8aGVhZD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KPCEtLQojeWdycC1ta3Ag
ewogIGJvcmRlcjogMXB4IHNvbGlkICNkOGQ4ZDg7CiAgZm9udC1mYW1pbHk6IEFyaWFsOwog
IG1hcmdpbjogMTBweCAwOwogIHBhZGRpbmc6IDAgMTBweDsKfQoKI3lncnAtbWtwIGhyIHsK
ICBib3JkZXI6IDFweCBzb2xpZCAjZDhkOGQ4Owp9CgojeWdycC1ta3AgI2hkIHsKICBjb2xv
cjogIzYyOGMyYTsKICBmb250LXNpemU6IDg1JTsKICBmb250LXdlaWdodDogNzAwOwogIGxp
bmUtaGVpZ2h0OiAxMjIlOwogIG1hcmdpbjogMTBweCAwOwp9CgojeWdycC1ta3AgI2FkcyB7
CiAgbWFyZ2luLWJvdHRvbTogMTBweDsKfQoKI3lncnAtbWtwIC5hZCB7CiAgcGFkZGluZzog
MCAwOwp9CgojeWdycC1ta3AgLmFkIHAgewogIG1hcmdpbjogMDsKfQoKI3lncnAtbWtwIC5h
ZCBhIHsKICBjb2xvcjogIzAwMDBmZjsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLS0+
Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+CgoKCjwhLS0gfCoqfGJlZ2luIGVncCBodG1sIGJh
bm5lcnwqKnwgLS0+Cgo8YnI+PGJyPgoKPCEtLSB8Kip8ZW5kIGVncCBodG1sIGJhbm5lcnwq
KnwgLS0+CgoKPGRpdj48c3BhbiBzdHlsZT0iY29sb3I6cmdiKDg2LCA4NiwgODYpO2ZvbnQt
ZmFtaWx5OidTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2xp
bmUtaGVpZ2h0OjI4cHg7Ij5EZWFyIEFsbCwmbmJzcDs8L3NwYW4+PC9kaXY+PHNwYW4gc3R5
bGU9ImNvbG9yOnJnYig4NiwgODYsIDg2KTtmb250LWZhbWlseTonU291cmNlIFNhbnMgUHJv
Jywgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyOHB4OyI+PGRpdj48
c3BhbiBzdHlsZT0iY29sb3I6cmdiKDg2LCA4NiwgODYpO2ZvbnQtZmFtaWx5OidTb3VyY2Ug
U2FucyBQcm8nLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI4cHg7
Ij48YnI+PC9zcGFuPjwvZGl2PlJlZmFjdG9yaW5nIGhhcyByZWNlaXZlZCBjb25zaWRlcmFi
bGUgYXR0ZW50aW9uIGluIHRoZSBsYXN0IGRlY2FkZSBnaXZlbiB0aGUgaW1wb3J0YW50IHJv
bGUgaXQgcGxheXMgaW4gQWdpbGUgbWV0aG9kcy4gV2l0aCBNYXJ0aW4gRm93bGVyIHBvcHVs
YXJpemluZyDigJhjb2RlIHNtZWxsc+KAmSBpbiBoaXMgY2xhc3NpYyBib29rIG9uIFJlZmFj
dG9yaW5nLCBtb3N0IHByb2dyYW1tZXJzIGtub3cgYWJvdXQgc21lbGxzLiBIb3dldmVyLCBy
ZWZhY3RvcmluZyBkZXNpZ24gc21lbGxzIGFuZCBhcmNoaXRlY3R1cmUgc21lbGxzIGlzIGFs
c28gZXF1YWxseSBpbXBvcnRhbnQgZm9yIGNyZWF0aW5nIGhpZ2ggcXVhbGl0eSBzb2Z0d2Fy
ZS4mbmJzcDs8L3NwYW4+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6cmdiKDg2LCA4NiwgODYp
O2ZvbnQtZmFtaWx5OidTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZTox
NnB4O2xpbmUtaGVpZ2h0OjI4cHg7Ij48YnI+PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5
bGU9ImNvbG9yOnJnYig4NiwgODYsIDg2KTtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoy
OHB4O2ZvbnQtZmFtaWx5OidTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmOyI+WW91IG1h
eSBiZSBpbnRlcmVzdGVkIGluIDxhIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBo
cmVmPSJodHRwOi8vd3d3LnNsaWRlc2hhcmUubmV0L3NnZ2FuZXNoL3JlZmFjdG9yaW5nLWZv
ci1kZXNpZ24tc21lbGxzIj50aGlzIHByZXNlbnRhdGlvbjwvYT4gd2hpY2ggaW50cm9kdWNl
cyBpbXBvcnRhbnQgZGVzaWduIHNtZWxscyBhbmQgdGhlIHJlZmFjdG9yaW5nIHN0cmF0ZWdp
ZXMgZm9yIGFkZHJlc3NpbmcgdGhlbS4gQWxsIHRoZSBleGFtcGxlcyBvZiBkZXNpZ24gc21l
bGxzIGFyZSBmcm9tIGluIE9wZW5KREsgNy4wIChPcGVuIHNvdXJjZSBKYXZhIERldmVsb3Bt
ZW50IEtpdCkgY29kZSBiYXNlLiZuYnNwOzwvc3Bhbj48YnI+PC9kaXY+PGRpdj48c3BhbiBz
dHlsZT0iY29sb3I6cmdiKDg2LCA4NiwgODYpO2ZvbnQtZmFtaWx5OidTb3VyY2UgU2FucyBQ
cm8nLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI4cHg7Ij48YnI+
PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOnJnYig4NiwgODYsIDg2KTtm
b250LWZhbWlseTonU291cmNlIFNhbnMgUHJvJywgc2Fucy1zZXJpZjtmb250LXNpemU6MTZw
eDtsaW5lLWhlaWdodDoyOHB4OyI+PGEgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsi
IGhyZWY9Imh0dHA6Ly93d3cuc2xpZGVzaGFyZS5uZXQvc2dnYW5lc2gvcmVmYWN0b3Jpbmct
Zm9yLWRlc2lnbi1zbWVsbHMiPmh0dHA6Ly93d3cuc2xpZGVzaGFyZS5uZXQvc2dnYW5lc2gv
cmVmYWN0b3JpbmctZm9yLWRlc2lnbi1zbWVsbHM8L2E+Jm5ic3A7PGJyPjwvc3Bhbj48L2Rp
dj48ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjpyZ2IoODYsIDg2LCA4Nik7Zm9udC1mYW1pbHk6
J1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHg7bGluZS1oZWln
aHQ6MjhweDsiPjxicj48L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6cmdi
KDg2LCA4NiwgODYpO2ZvbnQtZmFtaWx5OidTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlm
O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjI4cHg7Ij5XZSBoYXZlIHRha2VuIGFuIHVu
dXN1YWwgYXBwcm9hY2ggdG93YXJkcyByZWZhY3RvcmluZy4gVGhlIGJhY2tncm91bmQgcmVz
ZWFyY2gmbmJzcDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOnJnYig4NiwgODYsIDg2KTtm
b250LWZhbWlseTonU291cmNlIFNhbnMgUHJvJywgc2Fucy1zZXJpZjtmb250LXNpemU6MTZw
eDtsaW5lLWhlaWdodDoyOHB4OyI+cHJlc2VudGF0aW9uIGlzIGhlcmU6Jm5ic3A7PC9zcGFu
PjxhIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8vd3d3LnNs
aWRlc2hhcmUubmV0L3NsaWRlc2hvdy9lbWJlZF9jb2RlLzI1MTU4NDEzIiBzdHlsZT0iZm9u
dC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0
O2ZvbnQtc3R5bGU6aW5oZXJpdDtmb250LXZhcmlhbnQ6aW5oZXJpdDttYXJnaW46MHB4O3Bh
ZGRpbmc6MHB4O2JvcmRlcjowcHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Y29sb3I6cmdi
KDIwMSwgNzAsIDk5KTt0ZXh0LWRlY29yYXRpb246bm9uZTsiPmh0dHA6Ly93d3cuc2xpZGVz
aGFyZS5uZXQvc2xpZGVzaG93L2VtYmVkX2NvZGUvMjUxNTg0MTM8L2E+PC9kaXY+PHAgc3R5
bGU9Im1hcmdpbi1ib3R0b206MWVtO3BhZGRpbmc6MHB4O2JvcmRlcjowcHg7Zm9udC1mYW1p
bHk6J1NvdXJjZSBTYW5zIFBybycsIHNhbnMtc2VyaWY7Zm9udC1zaXplOjE2cHg7bGluZS1o
ZWlnaHQ6MjhweDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtjb2xvcjpyZ2IoODYsIDg2LCA4
Nik7Ij5hbmQgdGhlIHJlc2VhcmNoIHBhcGVyIGlzIGhlcmU6Jm5ic3A7aHR0cDovL3d3dy5q
b3QuZm0vaXNzdWVzL2lzc3VlXzIwMTNfMDYvYXJ0aWNsZTEucGRmPC9wPjxwIHN0eWxlPSJt
YXJnaW4tYm90dG9tOjFlbTtwYWRkaW5nOjBweDtib3JkZXI6MHB4O2ZvbnQtZmFtaWx5OidT
b3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0
OjI4cHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Y29sb3I6cmdiKDg2LCA4NiwgODYpOyI+
UGxlYXNlIHNoYXJlIHlvdXIgZmVlZGJhY2sgYW5kIGNvbW1lbnRzIG9uIHRoaXMgd29yayAu
PC9wPjxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOjFlbTtwYWRkaW5nOjBweDtib3JkZXI6MHB4
O2ZvbnQtZmFtaWx5OidTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZTox
NnB4O2xpbmUtaGVpZ2h0OjI4cHg7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Y29sb3I6cmdi
KDg2LCA4NiwgODYpOyI+QmVzdCByZWdhcmRzLCZuYnNwOzwvcD48cCBzdHlsZT0ibWFyZ2lu
LWJvdHRvbToxZW07cGFkZGluZzowcHg7Ym9yZGVyOjBweDtmb250LWZhbWlseTonU291cmNl
IFNhbnMgUHJvJywgc2Fucy1zZXJpZjtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoyOHB4
O3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2NvbG9yOnJnYig4NiwgODYsIDg2KTsiPkdhbmVz
aCZuYnNwOzwvcD4KCgoKPCEtLSB8Kip8YmVnaW4gZWdwIGh0bWwgYmFubmVyfCoqfCAtLT4K
Cjxicj4KCgo8YnI+Cgo8IS0tIHwqKnxlbmQgZWdwIGh0bWwgYmFubmVyfCoqfCAtLT4KCgo8
ZGl2IHdpZHRoPSIxIiBzdHlsZT0iY29sb3I6IHdoaXRlOyBjbGVhcjogYm90aDsiLz5fXy5f
LF8uX19fPC9kaXY+CgogICAgICAKICAgICAgCjwhLS0gU3RhcnQgUmVjb21tZW5kYXRpb25z
IC0tPgo8IS0tIEVuZCBSZWNvbW1lbmRhdGlvbnMgLS0+CgoKCjwhLS0gfCoqfGJlZ2luIGVn
cCBodG1sIGJhbm5lcnwqKnwgLS0+CgogIDxpbWcgc3JjPSJodHRwOi8vZ2VvLnlhaG9vLmNv
bS9zZXJ2P3M9OTc0NzY1OTAvZ3JwSWQ9Mzk3NTYwMi9ncnBzcElkPTE3MDcyNzY3MTgvbXNn
SWQ9MTA3MDAvc3RpbWU9MTM4MDg5NDM1NiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+IDxicj4K
CjwhLS0gfCoqfGVuZCBlZ3AgaHRtbCBiYW5uZXJ8Kip8IC0tPgoKICAKPCEtLSB8Kip8YmVn
aW4gZWdwIGh0bWwgYmFubmVyfCoqfCAtLT4KCjxicj4KICAgICAgPGRpdiBzdHlsZT0iZm9u
dC1mYW1pbHk6IHZlcmRhbmE7IGZvbnQtc2l6ZTogNzclOyBib3JkZXItdG9wOiAxcHggc29s
aWQgIzY2NjsgcGFkZGluZzogNXB4IDA7IiA+CiAgICAgIFlvdXIgZW1haWwgc2V0dGluZ3M6
IEluZGl2aWR1YWwgRW1haWx8VHJhZGl0aW9uYWwgPGJyPgogICAgICA8YSBocmVmPSJodHRw
Oi8vZ3JvdXBzLnlhaG9vLmNvbS9ncm91cC9yZWZhY3RvcmluZy9qb2luO195bGM9WDNvRE1U
Sm1aRGh4TlRGcEJGOVRBemszTkRjMk5Ua3dCR2R5Y0Vsa0F6TTVOelUyTURJRVozSndjM0JK
WkFNeE56QTNNamMyTnpFNEJITmxZd05tZEhJRWMyeHJBM04wYm1kekJITjBhVzFsQXpFek9E
QTRPVFF6TlRZLSI+Q2hhbmdlIHNldHRpbmdzIHZpYSB0aGUgV2ViPC9hPiAoWWFob28hIElE
IHJlcXVpcmVkKSA8YnI+CiAgICAgIENoYW5nZSBzZXR0aW5ncyB2aWEgZW1haWw6IDxhIGhy
ZWY9Im1haWx0bzpyZWZhY3RvcmluZy1kaWdlc3RAeWFob29ncm91cHMuY29tP3N1YmplY3Q9
RW1haWwgRGVsaXZlcnk6IERpZ2VzdCI+U3dpdGNoIGRlbGl2ZXJ5IHRvIERhaWx5IERpZ2Vz
dDwvYT4gfCA8YSBocmVmID0gIm1haWx0bzpyZWZhY3RvcmluZy1mdWxsZmVhdHVyZWRAeWFo
b29ncm91cHMuY29tP3N1YmplY3Q9Q2hhbmdlIERlbGl2ZXJ5IEZvcm1hdDogRnVsbHkgRmVh
dHVyZWQiPlN3aXRjaCB0byBGdWxseSBGZWF0dXJlZDwvYT4gPGJyPgogICAgICAgICAgIDxh
IGhyZWY9Imh0dHA6Ly9ncm91cHMueWFob28uY29tL2dyb3VwL3JlZmFjdG9yaW5nO195bGM9
WDNvRE1USmtNakkxY0cwMEJGOVRBemszTkRjMk5Ua3dCR2R5Y0Vsa0F6TTVOelUyTURJRVoz
SndjM0JKWkFNeE56QTNNamMyTnpFNEJITmxZd05tZEhJRWMyeHJBMmh3WmdSemRHbHRaUU14
TXpnd09EazBNelUyIj4KICAgICAgICBWaXNpdCBZb3VyIEdyb3VwIAogICAgICA8L2E+IHwK
ICAgICAgPGEgaHJlZj0iaHR0cDovL2luZm8ueWFob28uY29tL2xlZ2FsL3VzL3lhaG9vL3V0
b3MvdGVybXMvIj4KICAgICAgICBZYWhvbyEgR3JvdXBzIFRlcm1zIG9mIFVzZQogICAgICA8
L2E+IHwKICAgICAgPGEgaHJlZj0ibWFpbHRvOnJlZmFjdG9yaW5nLXVuc3Vic2NyaWJlQHlh
aG9vZ3JvdXBzLmNvbT9zdWJqZWN0PVVuc3Vic2NyaWJlIj4KICAgICAgIFVuc3Vic2NyaWJl
IAogICAgICA8L2E+IAogPGJyPgogICAgPC9kaXY+CiAgPGJyPgoKPCEtLSB8Kip8ZW5kIGVn
cCBodG1sIGJhbm5lcnwqKnwgLS0+CgoKPGRpdiBzdHlsZT0iY29sb3I6IHdoaXRlOyBjbGVh
cjogYm90aDsiLz5fXyxfLl8sX19fPC9kaXY+CjwvYm9keT4KCjwvaHRtbD4K