class MainPage(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
tasks_query = Task.all()
tasks = tasks_query.fetch(1000)
if user:
url = users.create_logout_url(self.request.uri)
else:
url = users.create_login_url(self.request.uri)
template_values = {
'tasks': tasks,
'url': url
}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))
class Gadget(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
tasks_query = Task.all()
tasks = tasks_query.fetch(1000)
if user:
url = users.create_logout_url(self.request.uri)
else:
url = users.create_login_url(self.request.uri)
template_values = {
'tasks': tasks,
'url': url
}
path = os.path.join(os.path.dirname(__file__), 'gadget.xml')
self.response.out.write(template.render(path, template_values))
0
A
回答
6
真的這取決於你期望將來在兩個類別之間是共同的。重構的目的是識別共同的抽象,而不是最小化代碼行數。
這就是說,假設兩個請求預計的區別僅在於模板:
class TaskListPage(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
tasks_query = Task.all()
tasks = tasks_query.fetch(1000)
if user:
url = users.create_logout_url(self.request.uri)
else:
url = users.create_login_url(self.request.uri)
template_values = {
'tasks': tasks,
'url': url
}
path = os.path.join(os.path.dirname(__file__), self.template_name())
self.response.out.write(template.render(path, template_values))
class MainPage(TaskListPage):
def template_name(self):
return 'index.html'
class Gadget(TaskListPage):
def template_name(self):
return 'gadget.xml'
1
重構爲什麼目的?你是否得到錯誤,想要做其他事情,或者...?假設正確的導入和URL調度圍繞此,我沒有看到任何必須重構的應用程序引擎 - 所以,不要讓我們猜測!)
1
由於兩個類是相同的除了一個字符串('index.html'與'gadget.xml')是否可以將其中一個作爲另一個的子類,並將這兩個字符串作爲類常量?
1
使它成爲相同的類,並使用GET或POST參數來決定要呈現哪個模板。
相關問題
- 1. 如何重構此代碼
- 2. 如何重構此代碼?
- 3. 如何重構此Ruby代碼?
- 4. 如何重構此Objective-C代碼
- 5. 如何重構此IO代碼?
- 6. 如何重構此代碼以刪除重複的代碼
- 7. 重構此視圖代碼
- 8. 重構此javascript代碼
- 9. 重構Python代碼
- 10. 重構Python代碼
- 11. 如何使這個C#代碼很小或重構此代碼
- 12. 如何重複此代碼
- 13. 重構此Python代碼以簡化重複的簡單方法
- 14. 小Python代碼重構
- 15. 重構此代碼爲ARC遵守
- 16. 如何重構ruby代碼?
- 17. 如何重構scala代碼?
- 18. 如何更好地構建此代碼?
- 19. 如何更好地構建此代碼?
- 20. 如何優化此dijkstra結構代碼?
- 21. 我如何重構此代碼以縮短它?
- 22. Rails 3 - 如何重構此控制器代碼?
- 23. 我將如何重構此代碼使用特效?
- 24. 我該如何重構此代碼以減少CC
- 25. 如何重構此代碼以使其更通用?
- 26. 如何重構此代碼並應用OO模式?
- 27. 我該如何重構此代碼以不返回null兩次?
- 28. 如何重構此javascript代碼的許多實例化
- 29. 如何在不重構的情況下編寫此代碼?
- 30. 避免反思 - 如何最好地重構此代碼?
有很多代碼的重複,你看不出來?這是醜陋的,不太可讀,並具有較差的維護性。爲清晰起見, – 2009-07-24 01:14:39
已刪除「for AppEngine」 – 2009-07-24 01:15:32