zoukankan      html  css  js  c++  java
  • Collaborator-vs-he-Factory

    Collaborator-vs-he-Factory

    Collaborator vs. the Factory

    • your code should either be in the business of doing business logic or in the business of instantiating and wiring other objects together
    • What this effectively means is that your either have classes with ifs and loops (your business logic) or you have classes with new operators (your factories).要么处理逻辑,要么创建对象
    • But in practice you only need one factory class each time you cross an object lifetime
    • To allow the removal of the new operators from our business logic classes, we need to ask for our collaborators instead of making them
    •  This means that each class only knows about other classes with which it is in direct contact and which it needs to get its job done.
    •  The trick lies that the view of the world from the factory is different than the view from the collaborator.
    • The collaborators only know about its direct dependecies and the factories know about everything, and that is a good thing. 

    But in my experience I saw there are times when objects are created based on business logic. So, some object requires a certain object, with a certain interface. The tricky part is that the concrete object  type is determined at runtime in some business logic code.

    •  Let the factory control the wiring process keeping the ifs out of it (as much as possible).
    • A single factory can be responsible for a whole object graph, so there is not necessarily a one-to-one correspondence there between classes and factories

    原文链接:Collaborator vs. the Factory

  • 相关阅读:
    bzoj 3027 [Ceoi2004]Sweet——生成函数
    bzoj 3028 食物——生成函数
    JZOJ 5461 购物 —— 贪心
    JZOJ 1003 [ 东莞市选 2007 ] 拦截导弹 —— 递推
    JZOJ 1667 ( bzoj 1801 ) [ AHOI 2009 ] 中国象棋 —— DP
    洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配
    洛谷 P3398 仓鼠找sugar —— 树链剖分
    洛谷 P1083 [ NOIP 2012 ] 借教室 —— 线段树 / 二分差分数组
    bzoj 3895 取石子 —— 博弈论
    洛谷 P1312 [ NOIP 2011 ] Mayan游戏 —— 搜索+模拟
  • 原文地址:https://www.cnblogs.com/xilifeng/p/4703541.html
Copyright © 2011-2022 走看看