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


How to choose the correct architecture for my PHP classes?

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

在编码之前,我喜欢组织我的想法,做类和需求图。

所以我必须在我的软件

中这样做

的东西—用户。-添加购买订单

我在用两种不同的方式思考我的课。

:

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

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

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

任何想法?

谢谢

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) { };
}

您可以使用some包装器代替void作为返回值:

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

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

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

然而,对我来说,让add函数成为这些类的一部分是没有意义的,因为这些类的新实例的创建实际上是add。

相反,我会创建AddUser和AddOrder函数来创建实例,并在需要的地方适当地添加它们。