早上有写一篇《设计模式--建造者(Builder)模式》http://www.cnblogs.com/insus/p/4179620.html。是在ASP.NET环境中,应用与演示设计模式(Builder)。现在Insus.NET从博文中最后的下载链接下载取源程序,它是有写得不够理想,现在重构它。

问题点,网页中只有一个PlaceHolder容器,不能所有生成的部件都生成在一个容器中,而是为了定位,放在几个地方,有可以是左也有可能是右。PlaceHolader的Id会随网页的变化,它尽不相同。
另一个问题,部件名称_PageParts["header"],_PageParts["content"],_PageParts["footer"]等等。在开发时,它在两个类别出现。写起来有可以会拼错。

针对这两个大问题,Insus.NET决定重构这些程序。统一部件名称:

重构WebPage类:

重构具体类NewsPages:

相同的手法重构具体类ArticlePages:

xxx.aspx.cs:

和:

日后,我们只管开发用户控件和网页即可。一些类没有必要做更多修改。达到动态加载与方便维护。

源程序:
http://download.cnblogs.com/insus/Refactoring/builder_refactoring.rar

转载于:https://www.cnblogs.com/insus/p/4180186.html

程序一旦发觉写得不理想,那就得重构它相关推荐

  1. 程序员如何写简历?来自硅谷的八条建议

    转载自  程序员如何写简历?来自硅谷的八条建议 前言 半个月前我发起了程序员内推项目之后,收到一些邮件,对方单纯希望我帮忙优化一下简历.我提了一些修改意见之后,有一位同学专门给我送了一张亚马逊的礼品卡 ...

  2. 为什么好的程序员会写出糟糕的单元测试?

    恭喜你!在写了无数行代码之后你终于可以买一套海景别墅了.你雇了世界著名的摩天大楼建筑师 Peter Keating,他向你保证他设计的海景别墅是最好的. 几个月后你终于迎来了剪彩的时刻.新房子是一栋人 ...

  3. 技术总监谈好的程序员如何写代码[转]

    技术总监谈好的程序员如何写代码[转] 要判断一个程序员是不是好的程序员,主要看他写的代码,因为程序员最重要的事是写代码.          即便不去理解代码的意图,只要看一眼,好的程序员写的代码与差的 ...

  4. 优秀的程序员!=爱写博客的程序员

    前几天我面试一个程序员,连续几个专业问题他都没答上来. 尴尬之余,我问他:「你没有什么理想吗?你现在最渴望的事情是什么?」 他转悠着大眼睛,不假思索道:「回去写篇博客,记录下这次面试的经验!」 真没想 ...

  5. 程序,软件,产品,理想 知易行难

    最近几天经常看到新闻,80年后的创业者,创业人,网络,创意经济,年纪轻轻却掌握着亿万资产,象李想之辈的人真是令人佩服,可以说他已经把我们这些同一代的人远远的抛开了,如果我是现在在走路 的话,他们可以说 ...

  6. [转]为什么程序员总是写糟糕的代码?这3个原因

    原文请看:为什么程序员总是写糟糕的代码?这3个原因 我最近一直在想我们作为一个行业为什么总是产出糟糕代码的原因. 1.明显原因-- 我一下子想到的最明显的原因是,有好的程序员,也有不那么好的程序员,有 ...

  7. 有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,

    题目:有一个小白程序员,写了一个只能对5个数字进行排序的函数,现在有25个不重复的数字,请问小白同学最少调用几次该函数,可以找出其中最大的三个数? A.5 B.6 C.7 D.8 答案:C 解析:第一 ...

  8. java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大。

    java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大. A:正确 B:错误 蒙蔽树上蒙蔽果,蒙蔽树下你和我 拿到这道题,我觉得说的贼有道理,注释太多,尺寸变大.无疑与就和驾考 一样, ...

  9. 卖掉 3000 平房子,50 岁程序员回国写代码,三个月内融资 2000 万美元

    2019年7月12日,10多万行C代码的中国物联网大数据平台 TDengine 在 GitHub开源,立即冲上 GitHub 榜首,整整五天霸榜 GitHub.目前该项目在 GitHub 上 Star ...

最新文章

  1. ESPNet系列:自动驾驶领域轻量级分割模型
  2. php fatal class ziparchive not found,php中Fatal error: Class ZipArchive not found的解决办法
  3. linux i2c子系统看不懂啊,Linux 下的I2C子系统
  4. spring编程式事务控制
  5. 整数转罗马数字Python解法
  6. gbk 转 UTF-8
  7. HTML怎么做类似QQ聊天气泡,h5实现QQ聊天气泡的实例介绍
  8. HashSet源码解析(最好先看HashMap的源码解析)
  9. 强烈谴责中国红十字会
  10. 关于手动栈 (模板)
  11. Dataset XML 序列化,什么是序列化
  12. 刚装的matlab R2010a运行quad2d时提示找不到指定的程序! 提示信息: libmwblas: load error: csrot Caught
  13. ARTS-26(leetcode-119. 杨辉三角 II,AVOD最详细过程,Git用法,DMA原理,海天味业的企业估值(1))
  14. Opencv4 c/c++学习笔记(一)
  15. 严格对角占优矩阵特征值_对角占优矩阵的性质.doc
  16. 用 Web 技术为 Safari 编写扩展
  17. 怎样用计算机玩CS,电脑建立局域网玩cs的三种方法
  18. 绑定变量窥视 oracle,Oracle bind peeking(绑定变量窥视)
  19. [AHK]如何更改键盘快捷方式,在 Windows 10 中的虚拟桌面之间切换
  20. 魅族16th完美开启Usb调试模式的经验

热门文章

  1. 局域网打印机反应慢_为什么你的Excel这么慢,这些原因必须要知道!
  2. lte核心网由哪些设备组成_电气设备安装工程由哪些部分组成?
  3. mysql撤销用户授权_mysql用户授权及撤销
  4. python参考文献_[zotero/python]库中参考文献条目删除后,清除残留PDF的脚本
  5. layout布局_安卓最常见的几种布局
  6. 数据结构与算法python描述_数据结构与算法——Python语言描述.pdf
  7. android webview 字体 系统字体大小,Android 系统字体大小动态改变,导致webview中显示不兼容的问题解决...
  8. javascript 唯一值的集合 Set对象
  9. MySQL 数据库恢复
  10. MySQL 删除视图