代码之家  ›  专栏  ›  技术社区  ›  GordonM

与内部对象的接口

  •  0
  • GordonM  · 技术社区  · 14 年前

    我正在研究一个病例记录系统。每个案例都可以附加注释,所以我将创建一个案例类和一个注释类,并在案例类中嵌入一个注释对象。

    我正在考虑如何为嵌入的注释对象提供接口。我可以让它成为公共成员,让程序员直接访问它,( $case -> comment -> addComment() 或者将其设为私有并将方法放入case类中,以通过comment对象提供对注释的访问(p ublic function addComment () { return ($this -> comment -> addComment ()); } )

    考虑到这一点,后一种风格意味着case对象依赖于comment对象。然而,在前一种情况下,程序员可能能够做一些事情,比如使case对象的comments属性引用不属于case的注释,甚至是不属于comment对象的项目!

    在这两种方法中,哪一种被认为是最佳实践?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Rene Terstegen    14 年前

    class Case {
        private $comment;
    
        public function getComment() {
            // Add some checks if necessary
            ...
            return $this->comment;
        }
    
        public function addComment(Comment $comment) {
            // Add some checks if necessary
            ...           
            $this->comment = $comment;
        }
    }
    

    // $Case is a Case object, doh ;)...
    $Case->comment = "Just a string value";
    

    public function setComment(Comment $comment) {
        ...
    }
    

        2
  •  1
  •   Dan Grossman    14 年前