如何为我的PHP类选择正确的架构?

时间:2014-03-16 19:13:14

标签: php architecture

这是我自己构建的第一个网络应用程序。

在编码之前,我想组织我的想法,做上课和要求图。

所以我必须在我的软件中执行此操作

  

- 添加用户。    - 添加购买订单。

我以两种不同的方式思考我的课程。

像这样:

class User{
    function add()
    function edit()
}

class BuyOrder{
    function add()
    function edit()
}

或者

class Add{
   function user()
   function buyOrder()
}

class Edit{
    function user()
    function buyOrder()
}

正如你所看到的,他们会做同样的事情,但写作不同。

有什么想法吗?

感谢

2 个答案:

答案 0 :(得分:1)

public class User 
{
   public Guid Id { get; set; }
   public string Name { get; set; }
   pubic string LastName { get; set; }
   public byte Age { get; set; }
   public List<Order> Orders { get; set; }
}

public class Order 
{
   public Guid Id { get; set; }
   public decimal Price { get; set; }
   public bool IsAvailable { get; set; }
}

public class Service 
{
   public User Create(User user) { };
   public User Read(Guid id) { };
   public void Update(User user) { };
   public void Delete(Guid id) { };

   public Order Create(Order order) { };
   public Order Read(Guid id) { };
   public void Update(Order order) { };
   public void Delete(Guid id) { };


   // Add orders to user basket
   public void AddOrdersToUserBasket(List<Order> orders, User user) { }; 
   public void AddOrdersToUserBasket(List<Order> orders, Guid id) { };

   // Get all orders of current user
   public List<Order> ReadOrdersForUser (Guid id) { };

   // Send orders and user data to process a delivery.
   public void Send ProcessOrdersAndUserData(List<Order> orders, User user) { };
}

而不是void作为返回值,您可以使用一些包装器:

public class Answer 
{
   public bool Result { get; set; }
   public string Message { get; set; }
}

需要将服务划分为UserSevice,OrderService和ProcessService。

答案 1 :(得分:0)

我认为User和BuyOrder应该是一个类。

但是,将add函数作为这些类的一部分对我来说没有意义,因为有效地创建这些类的新实例就是添加。

相反,我会创建AddUser和AddOrder函数来创建实例并将它们正确地添加到需要的位置。