当前位置: 首页 > news >正文

怎么做网站支付微网站制作速成法

怎么做网站支付,微网站制作速成法,域名注册规则,网站建设源代码 费用1、函数上移#xff08;Pull Up Method#xff09; 无论何时#xff0c;只要系统内出现重复#xff0c;你就会面临“修改其中一个却未能修改另一个”的风险。通常#xff0c;找出重复也有一定的难度。 所以#xff0c;某个函数在各个子类中的函数体都相同#xff08;它们…1、函数上移Pull Up Method 无论何时只要系统内出现重复你就会面临“修改其中一个却未能修改另一个”的风险。通常找出重复也有一定的难度。 所以某个函数在各个子类中的函数体都相同它们很可能是通过复制粘贴得到的这就需要使用函数上移也就是将共同的函数上移到超类中。 函数上移过程中被提升的函数可能会引用只出现于子类而不出现于超类的特性。此时我就得用字段上移和函数上移先将这些特性类或者函数提升到超类。  2、字段上移Pull Up Field  如果各子类是分别开发的或者是在重构过程中组合起来的你常会发现它们拥有重复特性特别是字段更容易重复。 如果它们被使用的方式很相似就可以将它们提升到超类中去。  3、构造函数本体上移Pull Up Constructor Body  逐一移除子类间的公共代码将其提升至超类构造函数中。对于公共代码中引用到的变量将其作为参数传递给超类的构造函数。 如果重构过程过于复杂可以考虑转而使用以工厂函数取代构造函数详见重构改善既有代码的设计-学习五重构API-CSDN博客。 4、函数下移Push Down Method 如果超类中的某个函数只与一个或少数几个子类有关那么最好将其从超类中挪走放到真正关心它的子类中去。  5、字段下移Push Down Field  如果某个字段只被一个子类或者一小部分子类用到就将其搬移到需要该字段的子类中。  6、以子类取代类型码Replace Type Code with Subclasses  软件系统经常使用类型码表现“相似但又不同的东西”。大多数时候有这样的类型码就够了。但也有些时候可以再多往前一步引入子类。 继承有两个诱人之处 你可以用多态来处理条件逻辑。如果有几个函数都在根据类型码的取值采取不同的行为多态就显得特别有用。引入子类之后我可以用以多态取代条件表达式详见重构改善既有代码的设计-学习四简化条件逻辑-CSDN博客来处理这些函数。 有些字段或函数只对特定的类型码取值才有意义此时可以创建子类然后用字段下移把这样的字段放到合适的子类中去。 例如 function createEmployee(name, type) {return new Employee(name, type); } 改为 function createEmployee(name, type) {switch (type) {case engineer: return new Engineer(name);case salesman: return new Salesman(name);case manager: return new Manager (name);} } 7、移除子类Remove Subclass  子类数据结构的多样和行为的多态提供支持它们是针对差异编程的好工具。但随着软件的演化子类所支持的变化可能会被搬移到别处甚至完全去除这时子类就失去了价值。有时添加子类是为了应对未来的功能结果构想中的功能压根没被构造出来或者用了另一种方式构造使该子类不再被需要了。  8、提炼超类Extract Superclass 如果看见两个类在做相似的事可以利用基本的继承机制把它们的相似之处提炼到超类 9、折叠继承体系Collapse Hierarchy  如果发现一个类与其超类已经没多大差别不值得再作为独立的类存在就需要把超类和子类合并起来 10、 以委托取代子类Replace Subclass with Delegate 如果一个对象的行为有明显的类别之分继承是很自然的表达方式。我可以把共用的数据和行为放在超类中每个子类根据需要覆写部分特性。 但继承也有其短板他只能用于处理一个方向上的变化并且继承给类之间引入了非常紧密的关系。在超类上做任何修改都很可能破坏子类。 用委托可以解决这两个问题。对于不同的变化原因我可以委托给不同的类。与继承关系相比使用委托关系时接口更清晰、耦合更少。 可以用设计模式来理解本重构手法就是用状态State模式或者策略Strategy模式 取代子类。这两个模式在结构上是相同的都是由宿主对象把责任委托给另一个继承体系。 例子 class Order {get daysToShip() {return this._warehouse.daysToShip;} }class PriorityOrder extends Order {get daysToShip() {return this._priorityPlan.daysToShip;} } 改为 class Order {get daysToShip() {return (this._priorityDelegate)? this._priorityDelegate.daysToShip: this._warehouse.daysToShip;} }class PriorityOrderDelegate {get daysToShip() {return this._priorityPlan.daysToShip} } 11、以委托取代超类Replace Superclass with Delegate  在对象技术发展早期有一个经典的误用继承的例子让栈stack继承列表list。这个想法的出发点是想复用列表类的数据存储和操作能力。虽说复用是一件好事但这个继承关系有问题列表类的所有操作都会出现在栈类的接口上然而其中大部分操作对一个栈来说并不适用。更好的做法应该是把列表作为栈的字段把必要的操作委派给列表就行了。  如果子类与超类之间的耦合过强超类的变化很容易破坏子类的功能此时就可以使用以委托取代超类。 这样做的缺点就是对于宿主类也就是原来的子类和委托类也就是原来的超类中原本一样的函数现在我必须在宿主类中挨个编写转发函数。 例子 class List {...} class Stack extends List {...} 改为 class Stack {constructor() {this._storage new List();} } class List {...}
http://www.pierceye.com/news/59532/

相关文章:

  • 宝华路桥建设集团网站湖南seo网站多少钱
  • 做网站跟做app哪个累浪尖设计集团有限公司
  • 简单门户网站开发网络运营是做什么的工作
  • 网站首页制作教程视频官方网站下载6966
  • 优秀的国内企业网站工程造价信息网官网信息价
  • 中山网站的优化住房城乡建设干部学院网站
  • 电脑配件经营网站的建设微网站开发软件
  • 广州建设网站是什么样的专业网站推广软件
  • 作网站青岛市疾病预防控制中心紧急提示
  • 自己做报名网站网站能不能用自己的电脑做服务器
  • 免费企业网站模板源码建设运营平台网站的方法
  • 杭州网站建设慕枫网站建设都需要哪些资质
  • 吐鲁番市建设局网站大连建站免费模板
  • 专业网站设计工作室广告案例的网站
  • 安徽省建设工程八大员报名网站网络推广服务公司外包
  • 手机网站模板素材下载html5软件下载手机版
  • 微信兼职网站开发长安网站建设培训机构
  • 网站不能上传图片wordpress批量替换图片路径
  • 秦皇岛网站wordpress html标签
  • wordpress外网打开慢南通seo网站价格
  • 网站建设与推广方案模板wordpress运费
  • 建设个人网站多少钱学校门户网站建设的好处
  • 公司网站如何备案企业网站如何上存
  • 全球建站做网页游戏网站需要什么
  • 淘宝店铺网站策划书quiz在哪个网站做
  • 协会网站建站建筑网络计划图中tp是什么意思
  • 滁州网站建设梦天堂月子会所网站源码
  • 注册网站需要什么手续网站开发设计图psd
  • 做网站用的主机多少合适江苏10大网站建设公司
  • 深圳建立网站的公司中建建设银行网站