Каков наилучший способ организации объектно-ориентированного кода? - PullRequest
3 голосов
/ 18 июня 2010

Я давно не кодировал в java, и после написания кода на C я издал организацию моего кода для ООП. В частности, я не уверен, когда создавать новый метод, а когда создавать новый класс, а когда просто объединять все вместе.

Существуют ли общие правила или рекомендации относительно того, как это следует сделать?

Ответы [ 4 ]

22 голосов
/ 18 июня 2010

Взгляните на ТВЕРДЫЕ принципы .

РЕДАКТИРОВАТЬ (еще несколько указателей):

Вам нужен SOLID GRASP некоторых принципов проектирования.

Чтобы начать с малого, сначала взгляните на это:

При написании кода высокая ремонтопригодность должна быть вашей конечной целью, и все дело в распределении обязанностей и разделении интересов.

5 голосов
/ 18 июня 2010

Хорошо спроектированные объекты: SOLID .

Это сложный вопрос, который должен решить каждый, кто беспокоится о дизайне.Я думаю, что это самая трудная часть использования объектов, световые годы за пределами простого синтаксиса.

3 голосов
/ 18 июня 2010

Прежде всего, никогда не смешивайте все вместе. Попробуйте сначала определить объекты. Создайте класс для каждого объекта, с которым будет работать ваша программа. Если вы создаете приложение для водителей грузовиков, вам понадобится класс для водителя, грузовика, груза, который он перевозит, и на самом деле нет предела тому, как далеко вы сможете разбить эти большие объекты. Что касается методов, метод обрабатывает действие для объекта. Truck.Start () запустит грузовик. Drive () запустит его за рулем и т. Д. Возможно, метод Drive использует объект Route для аргумента, который содержит дороги для движения. Короче говоря, создайте метод, когда объект должен что-то сделать, и создайте класс, когда вы хотите иметь дело с объектом другого типа.

2 голосов
/ 18 июня 2010

Является ли это чем-то, о чем вы думаете как о вещи, субъекте или субъекте в вашей системе.Ну, тогда это объект, поэтому создайте класс для его представления.Нет необходимости делать это сложнее, чем есть.

...