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

江苏中禾建设网站长春智联招聘网最新招聘

江苏中禾建设网站,长春智联招聘网最新招聘,四川建设发展股份有限公司网站,手机设计软件室内装修声明#xff1a;本文并非博主原创#xff0c;而是来自对《Laravel 4 From Apprentice to Artisan》阅读的翻译和理解#xff0c;当然也不是原汁原味的翻译#xff0c;能保证90%的原汁性#xff0c;另外因为是理解翻译#xff0c;肯定会有错误的地方#xff0c;欢迎指正。…声明本文并非博主原创而是来自对《Laravel 4 From Apprentice to Artisan》阅读的翻译和理解当然也不是原汁原味的翻译能保证90%的原汁性另外因为是理解翻译肯定会有错误的地方欢迎指正。欢迎转载转载请注明出处谢谢单一责任原则介绍“SOLID”设计原则是Robert “Uncle Bob” Martin提出的理论。它是良好应用设计的5大原则包含单一责任原则开放封闭原则里氏替换原则接口分离原则依赖倒置原则让我们通过代码示例来深究下这五个原则。这5个原则相互****一荣俱荣一毁俱毁。实探单一责任原则代表一个类有且仅有一个改变的原因换言之一个类的职责范畴是严谨明确的。我们之前说过对来说无知是福。类只需要干好自己的工作对于其依赖变化的影响是无需感知的。看下面这个类class OrderProcessor {public function __construct(BillerInterface $biller){$this-biller $biller;}public function process(Order $order){$recent $this-getRecentOrderCount($order);if ($recent 0){throw new Exception(Duplicate order likely.);}$this-biller-bill($order-account-id, $order-amount);DB::table(orders)-insert(array(account $order-account-id,amount $order-amount;created_at Carbon::now();));}protected function getRecentOrderCount(Order $order){$timestamp Carbon::now()-subMinutes(5);return DB::table(orders)-where(account, $order-account-id)-where(created_at, , $timestamps)-count();}}该类的职责是什么通过名字可以明确他就是来处理订单的。但是从getRecentOrderCount方法中又能看到该方法需要对数据库中的历史订单进行检测以判断是否重复订单。额外的验证意味着在数据存储改变的情况下我们的订单处理程序必须要进行验证规则的修改。我们可以把这个职责提取到单独的类OrderRepository中class OrderRepository {public function getRecentOrderCount(Account $account){$timestamp Carbon::now()-subMinutes(5);return DB::table(orders)-where(account, $account-id)-where(created_at, , $timestamp)-count();}public function logOrder(Order $order){DB::table(orders)-insert(array(account $order-account-id,amount $order-amount;created_at Carbon::now();));}}然后在OrderProcessor中注入类库来减少它检测账户历史订单的职责class OrderProcessor {public function __construct(BillerInterface $biller, OrderRepository $orders){$this-biller $biller;$this-orders $orders;}public function process(Order $order){$recent $this-orders-getRecentOrderCount($order-account);if ($recent 0){throw new Exception(Duplicate order likely.);}$this-biller-bill($order-account-id, $order-amount);$this-orders-logOrder($order);}}现在我们将订单数据收集责任抽象出来当获取记录订单的方法改变时就无需再对OrderProcessor类进行修改了。现在的类库职责明确单一代码简洁表现力强同时可维护性也大大的提升。牢记单一责任原则不是指代码越少越好他是指写类是类的职责要非常明确要有一套可用的方法这些方法在类中要组成类的整体职责。根据既定的职责撰写出的这些巧而简洁的类我们的代码就能是一个解耦的可测的可友好改变的架构。
http://www.pierceye.com/news/225009/

相关文章:

  • 手机能访问电脑上自己做的网站吗网页设计作品到哪个网站
  • 网站推广成功案例城乡住房建设部官网查询
  • 养殖类网站模板那个网站的公众后推广做的好
  • 网站开发属于什么类型软件建站之星如何建网站
  • 微信做淘宝优惠券但网站是怎么建设但深圳市深圳市住房和建设局网站
  • 后端网站开发免费域名 网站
  • 综合信息网站建设方案网页浏览器排行榜前十名
  • 北京网站开发建设 58同城网站建设改版公司
  • 如何做网站预览网站设计线框图
  • 电子商务的网站的建设内容珠海自适应网站
  • 站酷海洛设计网站官网wordpress选了中文还是英文
  • 软件最全网站如何上传织梦做的网站
  • 做系统前的浏览网站能找回吗湖南网站建设价位
  • 工程服务建设网站那个网站可以做视频app制作
  • 国外网站访问速度慢企业网络营销策划案
  • 网站建设 亿安网络wordpress 调取菜单
  • 帝国网站管理系统安装教程互联网怎么做网站
  • 模板手机网站建设公司河南最新新闻事件今天
  • 企业网站备案要钱吗商标设计费用一般是多少
  • 天津专业网站制作新乡商城网站建设价格
  • 建筑业务网站建设泉州公司做网站
  • 做网站遇到的问题及解决方法网站快速查找
  • excel做网页放进网站2024年报申报入口官网
  • 伊春住房和城乡建设局网站滨州网站建设制作
  • 芒市网站建设wordpress登入修改
  • 室内设计招标网站mvc网站入口asp
  • 淘宝客怎么建设自己网站wordpress主题模板仿
  • 淄博做网站电话网站建设大赛策划书
  • 网站建设模板网站网站分析的优劣势
  • 医疗网站备案要怎么做 需要准备什么材料高端html5网站建设织梦模板