<?xml version="1.0" encoding="UTF-8"?>











<rss version="2.0" xmlns:jf="http://www.jivesoftware.com/xmlns/jiveforums/rss">



<channel>
    <title>Support Forums: Message List - Seven Low-Cost Ways to Improve Legacy Code</title>
    <link>http://www.theserverside.com</link>
    <description>Most recent forum messages</description>
    <language>en</language>
    
        <generator>Jive Forums Silver 5.5.30 (www.jivesoftware.com)</generator>
    
    <pubDate>Sat, 25 May 2013 09:24:54 -0400</pubDate>


    <item>

        <title>Jamie has it spot on.</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[I must say that I agree with your post. If you download the sample chapter from my book (which I think is still a version with a few errata still in there so be careful) you will see that I am fervently against blocking the future. The times to make...]]></description>
        

        <pubDate>Fri, 14 May 2004 09:07:57 -0400</pubDate>

        

        <jf:creationDate>Fri, 14 May 2004 09:07:57 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 14 May 2004 09:07:57 -0400</jf:modificationDate>
        <jf:date>May 14, 2004</jf:date>
        <jf:author>Robert Simmons</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Very strange attitudes here...</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[A few comments here are pretty alarming. At least one poster appears to think that subclassing is something that should be prevented by default. Another admits that using &quot;final&quot; might help but thinks it's distracting to look at. And somebody...]]></description>
        

        <pubDate>Tue, 04 May 2004 23:31:24 -0400</pubDate>

        

        <jf:creationDate>Tue, 04 May 2004 23:31:24 -0400</jf:creationDate>
        <jf:modificationDate>Tue, 04 May 2004 23:31:24 -0400</jf:modificationDate>
        <jf:date>May 4, 2004</jf:date>
        <jf:author>Jamie Flournoy</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>How about Collections.unmodifiableList(), then???</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[<blockquote>Because even if a List is declared as final, you can still modify its content at will.</blockquote>Not if you wrap it with Collections.unmodifiableList(java.util.List). If the code has it's own mutable objects, you can write similar wrappers...]]></description>
        

        <pubDate>Tue, 04 May 2004 02:52:58 -0400</pubDate>

        

        <jf:creationDate>Tue, 04 May 2004 02:52:58 -0400</jf:creationDate>
        <jf:modificationDate>Tue, 04 May 2004 02:52:58 -0400</jf:modificationDate>
        <jf:date>May 4, 2004</jf:date>
        <jf:author>Jani Kaarela</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Lovely Discussion</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[I have read through this thread and I am enjoying seeing all of the discussion going on about fundamental issues. As senior developers we often get into a rut and take things for granted. <br><br>As for final, Im of two minds on using it on classes. Both...]]></description>
        

        <pubDate>Mon, 03 May 2004 20:21:06 -0400</pubDate>

        

        <jf:creationDate>Mon, 03 May 2004 20:21:06 -0400</jf:creationDate>
        <jf:modificationDate>Mon, 03 May 2004 20:21:06 -0400</jf:modificationDate>
        <jf:date>May 3, 2004</jf:date>
        <jf:author>Robert Simmons</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>final point</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[&quot;Just by looking at that code, it's obvious you're asking for trouble. Try some different names or at least use &quot;this&quot;. &quot;<br><br><br>The point was that by making the param final<br>f = f will not compile while this.f = f will and will...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 16:25:52 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 16:25:52 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 16:25:52 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Todd Murray</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>Using final does not limit users of your code base at all.</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[George: <i>Upside? Pick up OO 101 to learn the benefits of encapsulation over extension when it comes to dependencies and decoupling.</i><br><br>Whatever perfect coding world you got to live in, get me a ticket there as fast as you can ;-)<br><br>When...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 15:51:10 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 15:51:10 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 15:51:10 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Cameron Purdy</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>final should be default</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[Michael: <i>Why did you *have to* extend it? You only have to extend it is if you can't change the calling code, and the calling code expects the superclass. If that's the case, it's an interface-implementation issue again; the original coder could have...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 15:48:37 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 15:48:37 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 15:48:37 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Cameron Purdy</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Using final does not limit users of your code base at all.</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[<blockquote>Using &quot;final&quot; is yet another way that one programmer arrogantly pretends to know the future. The &quot;final&quot; keyword, like any other, is a tool. </blockquote>A underused tool by far.<br><br>I stand by my original post.  I'd...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 15:35:16 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 15:35:16 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 15:35:16 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>George Coller</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>final point</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[Mike,<br><br>I think you misunderstood my point.  I'm against using final all over the place.  I was using the fact that most things in my code could use it, as evidence that it doesn't really make sense.  <br><br>I offered the option of having a...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 13:26:24 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 13:26:24 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 13:26:24 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Chris McMahon</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>final point</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[No need to use final--Eclipse will alert me of that one. :)<br><br>Just by looking at that code, it's obvious you're asking for trouble.  Try some different names or at least use &quot;this&quot;.]]></description>
        

        <pubDate>Fri, 30 Apr 2004 13:23:12 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 13:23:12 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 13:23:12 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Chris McMahon</jf:author>
        <jf:replyCount>2</jf:replyCount>
    </item>


    <item>

        <title>final should be default</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[<blockquote>Again, I think I am living in a different universe, because I don't see that many immutable classes, and the ones that should be (e.g. Date) aren't! ;-)</blockquote>Cameron, we're apparently in the same universe because I don't see many...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 13:14:58 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 13:14:58 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 13:14:58 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Michael Mahemoff</jf:author>
        <jf:replyCount>1</jf:replyCount>
    </item>


    <item>

        <title>When Final is useful</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[<blockquote>The *process* is final.</blockquote>I agree with you, you actually made my point.  The process *is* final, so make the template methods that define the process *final* so subclasses can't mess with it.]]></description>
        

        <pubDate>Fri, 30 Apr 2004 13:03:58 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 13:03:58 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 13:03:58 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Keith Donald</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>Bastard classes</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[It depends on what your class is representing. Suppose I'm handling event X in SomeWidget, and a set of rules were met that AnotherWidget should behave as if it received event Y, then I can just &quot;send that message&quot; or simulate that event...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 11:51:16 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 11:51:16 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 11:51:16 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>ABC DEF</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>


    <item>

        <title>final point</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[Consider this:<br><br>class X {<br><br>private Object f;<br><br>public X(Object f) {<br>f = f;   // which f is being modified?<br>}<br><br>}<br><br>class Y {<br><br>Object f;<br><br>public Y(final Object f) {<br>f = f;   //  will not compile<br>}<br>}]]></description>
        

        <pubDate>Fri, 30 Apr 2004 10:38:47 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 10:38:47 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 10:38:47 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Todd Murray</jf:author>
        <jf:replyCount>3</jf:replyCount>
    </item>


    <item>

        <title>Removing anonymous classes</title>
        <link>http://www.theserverside.com/discussions/thread.tss?thread_id=25612</link>

        

        
            <description><![CDATA[<blockquote>IMHO promoting them to private inner classes, especially to private static inner classes where possible, usually leads to <b>more readable</b> code.</blockquote>I'll agree the hoisting a class out of a method is more verbose.  But how is it...]]></description>
        

        <pubDate>Fri, 30 Apr 2004 10:24:44 -0400</pubDate>

        

        <jf:creationDate>Fri, 30 Apr 2004 10:24:44 -0400</jf:creationDate>
        <jf:modificationDate>Fri, 30 Apr 2004 10:24:44 -0400</jf:modificationDate>
        <jf:date>Apr 30, 2004</jf:date>
        <jf:author>Brian Miller</jf:author>
        <jf:replyCount>0</jf:replyCount>
    </item>



</channel>
</rss>

