Я помню, когда MS выпустила пример приложения на форуме, дизайн приложения был таким:
/ Классы / User.cs
/Classes/Post.cs
...
/Users.cs
/Posts.cs
Таким образом, папка классов имела только класс, т.е. свойства и методы получения / установки.
Users.cs, Post.cs и т. Д. Имеют фактические методы доступа к уровню доступа к данным, поэтому Posts.cs может выглядеть так:
public class Posts
{
public static Post GetPostByID(int postID)
{
SqlDataProvider dp = new SqlDataProvider();
return dp.GetPostByID(postID);
}
}
Другим более традиционным способом было бы поместить все методы в Posts.cs также в определение класса (Post.cs).
Разделение объектов на 2 файла делает его намного более процедурным, не так ли?
Разве это не нарушает правила ООП, поскольку оно выводит поведение из класса и помещает его в другое определение класса?